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

Posted

技术标签:

【中文标题】MPMoviePlayer 声音在模拟器和 ipad 设备中工作,但在 iPhone 设备中不工作【英文标题】:MPMoviePlayer sound working in Simulators and ipad device, but not Working in iPhone Device 【发布时间】:2012-02-23 06:28:29 【问题描述】:

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

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 设备上提供音频。

请帮帮我... 提前谢谢。

【问题讨论】:

【参考方案1】:

simham 先生 ... 检查下面的 url 它对我们有帮助,becoZ

    在移动 Safari 中调用 stream-url。如果结果相同,那么您的代码是正确的,而流不是。这将是一个错误编码的音频流。

    这取决于带宽也低于参考 url 关于带宽检查一次......你的参考流 URL 准备,根据 BandWith

参考网址:

http://wfmu.org/ssaudionet.shtml APPLE

【讨论】:

是的,太棒了。现在我得到了我真正需要的东西。谢谢你唠叨。【参考方案2】:

您正在为 controlStyle 属性分配一个已弃用的 MPMovieControlMode (MPMovieControlModeVolumeOnly),该属性需要一个 MPMovieControlStyle

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

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

如果以上所有方法都失败了,那么另外一项检查是在移动 safari 中调用 stream-url。如果结果相同,那么您的代码是正确的,而流不是。这将是一个错误编码的音频流。

【讨论】:

我已经尝试了所有选项。但是还有一个苹果网址可以正常工作。为什么我没有得到蒂尔先生? 是的,提尔先生好建议。它也不适用于 safari 浏览器。感谢您的回复。【参考方案3】:

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

如果不是使用 this 设置它-

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

【讨论】:

所有关于音频的设置都在 iPhone 设备中完美设置。但问题是“另一个网址(苹果网址)工作正常”。经过越来越多的搜索,我只是假设它可能是与带宽相关的问题。如果你知道带宽的概念,那么请告诉我......【参考方案4】:

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

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

【讨论】:

以上是关于MPMoviePlayer 声音在模拟器和 ipad 设备中工作,但在 iPhone 设备中不工作的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以保护 IPA 中的图形/声音数据?

我应该在 MPMoviePlayer 示例代码(适用于 iphone)中做出哪些区别才能使其在 Ipad 中工作?

如何将 .ipa 文件安装到我的 iPhone 模拟器

我需要在 ipad 上播放没有声音的视频

如何使用 Android Studio 在 Flutter 中构建 .apk 和 .ipa?

VS2015要ApacheCordova项目如何打包apk和ipa