0

AVAudioPlayer を使用して曲を再生しています。MPMediaItem の配列があります。ボタンのクリックでシーケンシャルとシャッフルが必要です。

私のコードは次のとおりです。

 AVAudioPlayer *player2;
 MPMediaItem *item = [arrAnand objectAtIndex:i];
 NSURL *url = [item valueForProperty:MPMediaItemPropertyAssetURL];
[player2 release];
player2 = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[player2 play];

助けてください。

4

1 に答える 1

0

iPod ライブラリにある曲を再生している場合は、 を利用できます。このクラスには、や などMPMusicPlayerControllerの状態を変更するためのプロパティが多数含まれています。shuffleModerepeatMode

AVAudioPlayer通知用のレシーバーを追加しAVPlayerItemDidPlayToEndTimeNotification、オブザーバー内で配列をクエリarrAnandしてランダムな mediaItem をフェッチする場合

これがお役に立てば幸いです。

編集 :

中身itemDidFinishPlaying

-(void)itemDidFinishPlaying 
{
    MPMediaItem *item = [arrAnand objectAtIndex:i]; 
    NSURL *url = [item valueForProperty:MPMediaItemPropertyAssetURL];

    if(player2)
    {
          [player2 release];
          player2 = nil;
    }
    player2 = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
    [player2 play];
}

注 :ここで、i は任意の乱数です ([arrAnand カウント] 未満である必要があります)。

于 2013-08-27T04:58:27.987 に答える