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 设备中不工作的主要内容,如果未能解决你的问题,请参考以下文章
我应该在 MPMoviePlayer 示例代码(适用于 iphone)中做出哪些区别才能使其在 Ipad 中工作?