【发布时间】:2011-08-17 13:30:47
【问题描述】:
如何关闭和打开 MPMoviePlayerController 的音频。我试过 useApplicationAudioSession 这个属性,即使它不起作用。你能帮帮我吗?
【问题讨论】:
标签: iphone
如何关闭和打开 MPMoviePlayerController 的音频。我试过 useApplicationAudioSession 这个属性,即使它不起作用。你能帮帮我吗?
【问题讨论】:
标签: iphone
我只想在 2016 年的讨论中补充一点,以这种方式静音音频在 Xcode 8 中仍然有效。请注意,我使用 NSUserDefaults 来跟踪用户是否打开了侧面开关:
// Mute audio depending on side switch state
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"RINGER_IS_ON"]) {
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; // Ignore the side swicth - play audio
} else {
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; // Respect the side switch - don't play audio
}
【讨论】:
回答永远不会太晚,对吧?我也在寻找一种方法来做这件事,我花了一段时间才找到正确的链接。
首先请注意 useApplicationAudioSession 现在 (iOS 6) 已弃用
设置环境音频会话将防止在其他应用中停止 audo
在代码中的某处设置:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
在我的例子中,将类别设置为 AVAudioSessionCategoryAmbient 就可以了!
【讨论】:
检查最后一行
useApplicationAudioSession
一个布尔值,指示电影播放器是否应使用应用程序的音频会话。
@property (nonatomic) BOOL useApplicationAudioSession
讨论
此属性的默认值为 是的。将此属性设置为 NO 导致电影播放器使用 系统提供的音频会话 不可混合播放类别。
重要提示:在 iOS 3.1 及更早版本中,电影播放器始终使用 系统提供的音频会话。到 在 iOS 3.2 中获得相同的行为 和更新的,你必须设置这个 财产价值为 NO。
当此属性为 YES 时,电影 播放器共享应用程序的音频 会议。这使您可以控制 电影播放器内容如何交互 使用您的音频和来自 其他应用程序,例如 iPod。 有关使用此功能的重要指导 功能,请参阅“使用电影和 iPod 音乐”在音频会话中 编程指南。
更改此属性的值 不影响当前播放 电影。为了新的设置 效果,您必须停止播放并 然后重新开始。
[[MPMusicPlayerController applicationMusicPlayer] setVolume:(use a value between 0.0 and 1.0)]
如果您的MPMoviePlayerController 使用应用程序音频会话,这应该调整音量。但是使用它时要小心..这是一种解决方法
【讨论】:
[[MPMusicPlayerController applicationMusicPlayer] setVolume:0.0];必须设置[videoPlayer moviePlayer].useApplicationAudioSession = YES;