2012-01-01 16 views
0

iPodライブラリから曲を選択させようとしています。そこから曲URLを取得した後、CocosDenshionライブラリを使用して再生しようとしていますが、音が聞こえません。CocosDenshionを使ってiPodライブラリの曲を再生する

はここMPMediaPickerControllerDelegateのコードサンプルです:

#pragma mark MPMediaPickerControllerDelegate 
- (void)mediaPicker: (MPMediaPickerController *)mediaPicker 
    didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection { 
    [self dismissModalViewControllerAnimated:YES]; 
    if ([mediaItemCollection count] < 1) { 
     return; 
    } 
    [song release]; 
    song = [[[mediaItemCollection items] objectAtIndex:0] retain]; 


    NSURL *itemURL = [song valueForProperty:MPMediaItemPropertyAssetURL]; 
    fileURL = [itemURL absoluteString]; 

    [[SimpleAudioEngine sharedEngine] preloadEffect:fileURL]; 
} 

、ここでサウンドを再生ボタンのハンドラです。

- (IBAction)playSong { 

    [[SimpleAudioEngine sharedEngine] playEffect:fileURL pitch:1.0f pan:0.0f gain:1.0f]; 
} 

誰かが間違っていることを教えてもらえますか?私は選択した曲のピッチを変更できる必要があります。だから私はCocosDenshionライブラリを使用しています。

答えて

1

デバッガで[song valueForProperty:MPMediaItemPropertyAssetURL]が返すURLを見てください。これは標準的なファイルシステムのURLではなく、資産ライブラリを指すカスタムURLなので、CocosDenshionが開くことはできません。

AV Foundation(おそらくAVAudioPlayer)を使用して曲を再生する必要があります。またはAV Foundationを使って最初に曲を「本当の」ファイルに変換してから、Cocos Denshionで再生しますが、これはおそらく最初のオプションよりもはるかに複雑です。

MPMediaItemPropertyAssetURLのドキュメントが明確にそう言って、あまりにも:AV Foundationフレームワークの外側のURLの

使用はサポートされていません。

+0

アップデート:AVPlayerはiPodライブラリのURLを再生できます。 AVAudioPlayerはiPodライブラリのURLから再生できません。 –

関連する問題