cocos-2dx でプロジェクトを作成してきましたが、iOS ライブラリから音楽を選択してバックグラウンドで再生するために .mm を作成する必要がありました。.mm ファイルの音楽を再生して動作させましたが、さまざまな理由により、SimpleAudioEngine を使用して cocos-2dx で再生する必要があります。URL の absoluteString を NSString に id から const char* に変換して cocos-2dx ファイルに戻そうとしましたが、それでも実行されませんでした。
これは、absoluteString(ipod-library://item/item.m4a?id=456458322781804615) に対して私に与えたものです。
.cc-
-(void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)collection{
if(collection){
MPMusicPlayerController* appMusicPlayer = [MPMusicPlayerController applicationMusicPlayer];
[appMusicPlayer setQueueWithItemCollection:collection];
[appMusicPlayer play];
MPMusicPlayerController *iPodMusicPlayerController = [MPMusicPlayerController iPodMusicPlayer];
MPMediaItem *nowPlayingItem = [iPodMusicPlayerController nowPlayingItem];
NSURL *url = [nowPlayingItem valueForProperty:MPMediaItemPropertyAssetURL];
NSString *filePath= [url absoluteString];
NSString *filePath2 = [url path];
_songUrl = filePath;
}
-(id)returnsongUrl{
return _songUrl;
}
秒 .mm
const char* MediaPicker::songUrl(){
id na1 = [[MediaPickerWrapper sharedIntance] returnsongUrl];
const char *cString = [na1 cStringUsingEncoding:NSASCIIStringEncoding];
return cString;
}
Cocos-2dx ファイル
CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(media->songUrl());
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(media->songUrl(),false);