【问题标题】:MPMoviePlayerController: Didn't get sound when we stop MPMoviePlayerControllerMPMoviePlayerController:当我们停止 MPMoviePlayerController 时没有声音
【发布时间】:2017-05-23 09:00:26
【问题描述】:

我正在使用 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,然后它将播放默认音乐。 当我检查音乐的当前声音时,它的 ohk 以及它的表演歌曲正在音乐应用程序中运行。但是没有声音。

【问题讨论】:

    标签: ios iphone mpmovieplayercontroller audio-player mpmovieplayer


    【解决方案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]);
       }    
    }
    

    希望对你有所帮助... :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多