1

私はを使用しています。ビデオを私のアプリケーションに再生しています。以下はビデオを再生するための私のコードです。MPMoviePlayerController:MPMoviePlayerControllerを終了すると音が鳴りません

**NSURL *url=[[NSURL alloc] initFileURLWithPath:urlPath];   
    if(moviePlayer) 
    { 
     [moviePlayer.view removeFromSuperview]; 
     moviePlayer = nil; 
    } 

    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
    moviePlayer.repeatMode = MPMovieRepeatModeOne; 
    moviePlayer.currentPlaybackTime = 0.0; 
    moviePlayer.view.frame = _viewMoviePlayer.frame; 
    moviePlayer.controlStyle =  MPMovieControlStyleNone; 
    moviePlayer.shouldAutoplay = YES; 
    [_viewMoviePlayer addSubview:moviePlayer.view]; 
    [moviePlayer prepareToPlay]; 
    [moviePlayer play]; 
    [self.view sendSubviewToBack:_viewMoviePlayer]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];** 

viewWillDisappearが呼び出されると、その後、私はちょうど停止のMoviePlayerおよびビューから削除します。 しかし、私のデフォルトの音楽プレーヤーは動作していますが、それは聞こえませんでした。私は自分のアプリケーションを閉じたときにそれを行います。

-(void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
    [moviePlayer stop]; 
    [moviePlayer.view removeFromSuperview]; 
    moviePlayer = nil; 

    [_viewMoviePlayer removeFromSuperview]; 
    _viewMoviePlayer = nil; 
} 

誰かが自分のコードで間違っていると言うことができますか?だから、私はmoviePlayerをリリースしてから、デフォルトの音楽を再生します。 ミュージックの現在の音色をチェックして、そのオックとそのショーソングがミュージックアプリで実行されているとき。しかし、音は聞こえませんでした。

答えて

1

私は同じ問題を抱えていました。私はちょうど別のコントローラを1つ作成しました以下は同じのために私のコードです:

-(void)playVideo 
{ 
    isPlay = FALSE; 
    if([[MPMusicPlayerController systemMusicPlayer] playbackState] == MPMoviePlaybackStatePlaying) 
     isPlay = TRUE; 

    NSString *urlPath = [[NSBundle mainBundle] 
         pathForResource:@"all" 
         ofType:@"mp4"]; 


    NSURL *url=[[NSURL alloc] initFileURLWithPath:urlPath]; 

    if(player) 
     [player pause]; 

    player = nil; 

    if(avPlayerLayer) 
     [avPlayerLayer removeFromSuperlayer]; 

    AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithURL:url]; 
    player = [[AVPlayer alloc] initWithPlayerItem:playerItem]; 

    avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; 

    avPlayerLayer.frame = self.view.frame; 
    [self.view.layer addSublayer:avPlayerLayer]; 
    [player play]; 
    } 

-(void)removeMoviePlayer 
{ 
    if(isPlay) 
     [[MPMusicPlayerController systemMusicPlayer] play]; 
    NSError *deactivationError = nil; 
    BOOL success = [[AVAudioSession sharedInstance] setActive:NO error:&deactivationError]; 
    if (!success) { 
     NSLog(@"%@", [deactivationError localizedDescription]); 
    }  
} 

は:)

...それはあなたに役立つことを願っています
関連する問題