2012-04-26 15 views
0

2つのオーディオファイルを連続して再生する必要があります。 私は以下のような一般的なファイルを持っています: "私の名前は"MPMoviePlayerControllerでオーディオを再生する

次のオーディオ文字列を持つ別のオーディオファイルの後に続きます。例えば

は:a.mp3は b.mp3は "ジョン"

しかし、私はMPMoviePlayerControllerのcontentURLを設定している "私の名前は" 持っていると言います。最初のオーディオをスキップし、2番目のオーディオを再生します。

は、ここに私のコードです:

- (void) playPromptAudio 
{[appDelegate.globalPlayer setContentURL:[NSURL 
      URLWithString:@"http://localhost/a.mp3"]]; 

    [appDelegate.globalPlayer prepareToPlay]; 
    [appDelegate.globalPlayer play]; 

    while (appDelegate.globalPlayer.playbackState == MPMoviePlaybackStatePlaying) { 
     // dirty hack, do gracefully 
     // do nothing 
    } 

    [appDelegate.globalPlayer setContentURL:[NSURL URLWithString:@"http://localhost/b.mp3"]]; 
     [appDelegate.globalPlayer prepareToPlay]; 
    [appDelegate.globalPlayer play]; 
} 

しかし、私は、コードを実行すると、唯一の「ジョン」が再生されます。

コードをデバッグした後は、関数全体を実行した後でオーディオが再生されていることがわかります。最後に設定されているため「John」が再生されていることは明らかです。しかし、この行動を防ぐ方法はありますか? MPMoviePlayerControllerがnodificationとコードプレイMpMoviePlayerの下にはバック

をプレイするために

答えて

0

は、このリンクをお試しください:機能以下

 NSURL *url = [NSURL fileURLWithPath:filePath isDirectory:NO]; 
     self.moviePlayer = [[[MPMoviePlayerController alloc] initWithContentURL:url] 
        autorelease]; 
     moviePlayer.shouldAutoplay = NO; 
     moviePlayer.view.frame = view_video.bounds; 
     moviePlayer.scalingMode= MPMovieScalingModeFill; 
     moviePlayer.controlStyle =MPMovieControlStyleNone; 
     [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; 
     [[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(doneButtonClick:) 
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:nil]; 
     [moviePlayer Play]; 

をMpMovieplayerController Playbackfinishedと呼ばれる:

 -(void)doneButtonClick:(NSNotification*)aNotification{ 
     NSLog(@"MPMoviePlayer is finished..!"); 
    } 

おかげで....!

+0

ありがとうございますが、リンクはMPMusicPlayerControllerです – krammer

+0

今、私は答えを更新しています...! – Dinesh

+0

私は答えを更新していますこれを試してみてください! – Dinesh

関連する問題