1

중지 할 때 소리를하지 않았다. 아래는 비디오 재생 코드입니다.MPMoviePlayerController : 우리가 내 응용 프로그램에 <strong>비디오</strong>을 재생 <strong>MPMoviePlayerController</strong>을 사용하고 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

동일한 문제가 있습니다. 방금 하나의 컨트롤러를 만들었습니다.

-(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]); 
    }  
} 

그것이 당신에게 도움이되기를 바랍니다 ... :)

: 아래 같은 내 코드입니다