如何在MPMoviePlayerController iPhone中关闭音频

时间:2011-05-03 09:05:37

标签: iphone

如何关闭&打开MPMoviePlayerController的音频。我试过useApplicationAudioSession这个属性,即使它不起作用。你能帮我吗?

3 个答案:

答案 0 :(得分:12)

永远不会太晚回答吧?正在寻找一种方法来做到这一点,我花了一段时间才找到正确的链接。

首先请注意useApplicationAudioSession现在(iOS 6)已弃用

设置环境音频会话将阻止在其他应用中停止audo

在代码中的某处设置: [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];

这是doc https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/index.html

这是解释 https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html

https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html

在我的情况下,将类别设置为AVAudioSessionCategoryAmbient就可以了!

答案 1 :(得分:1)

我只是想在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
    }

答案 2 :(得分:0)

检查最后一行

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使用应用程序音频会话,则应调整音量。但要小心使用它..这是一个解决方法