MPMoviePlayer声音可以在模拟器和ipad设备中工作,但不能在iPhone设备中工作



我的MPMoviePlayerController有问题,即我正在以(m3u8格式)MPMoviePlayer播放直播url,如下所示:

player = [[MPMoviePlayerController alloc] initWithContentURL:audioUrl];
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(loadStateDidChange:) 
                                                     name:MPMoviePlayerLoadStateDidChangeNotification 
                                                   object:player];
        if ([player respondsToSelector:@selector(loadState)]) 
        {
            // Set movie player layout
            [player setMovieSourceType:MPMovieSourceTypeStreaming];
            [player setControlStyle:MPMovieControlModeVolumeOnly];
            [player setFullscreen:YES];
            [player prepareToPlay];
            [player play];
        }
    }

它在模拟器和;ios 5版本的iPad设备,但它没有提供我拥有的任何iPhone设备中的音频。

请帮帮我。。。谢谢,提前。

simham先生。。。检查下面的网址,它有助于我们成为

  1. 移动safari中的呼叫流url。如果结果相同,那么您的代码是正确的,而流不是。这将是一个错误编码的音频流。

  2. 它还取决于带宽,参考url以下关于带宽检查一次。。。。根据BandWith ,u r ref流URL准备

参考网址:

  • http://wfmu.org/ssaudionet.shtml
  • 苹果

您正在向controlStyle属性分配一个不推荐使用的MPMovieControlModeMPMovieControlModeVolumeOnly),该属性需要一个MPMovieControlStyle

此外,您的代码缺少为任何超视图分配MPMoviePlayerController.view的部分,并且缺少其大小调整。

最后,但我想对你来说最重要的是,我猜你正在尝试的iPhone已经将音量设置为静音。或者,可能没有将音频路由设置为扬声器输出。对于后者,请确保您没有在应用程序的其他位置错误地设置音频会话。如果有疑问,请尝试篡改useApplicationAudioSession属性。试着将它设置为NO,看看这是否会改变你的结果。

如果以上所有操作都失败,那么一个额外的检查将是调用mobilesafari中的流url。如果结果相同,那么您的代码是正确的,而流不是。这将是一个错误编码的音频流。

检查您的iPhone是否处于扬声器模式-

如果不使用此设置

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

检查iPhone是否处于静音模式。要在静音模式下播放音频,请在AppDelegate的应用程序中添加以下代码:didFinishLaunchingWithOptions:

NSError *setCategoryErr = nil;
NSError *activationErr  = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];

最新更新