【问题标题】:How to make MPMoviePlayerController ignore the mute switch如何让 MPMoviePlayerController 忽略静音开关
【发布时间】:2011-05-22 06:54:53
【问题描述】:

我想使用MPMoviePlayerController 播放视频,但我希望它忽略静音开关,类似于 Youtube 视频播放器的行为。

有什么想法吗?

【问题讨论】:

  • 这个问题应该受到社区的保护。

标签: ios iphone mpmovieplayercontroller avaudiosession


【解决方案1】:

使用AVAudioSession 类别AVAudioSessionCategoryPlayback,您的应用将像 Youtube 应用一样忽略静音开关。

例如(受 cmets 中的 Ken Pletzer 启发):

#import <AVFoundation/AVFoundation.h>

// note: you also need to add AVfoundation.framework to your project's 
// list of linked frameworks
NSError *error = nil;
BOOL success = [[AVAudioSession sharedInstance] 
                setCategory:AVAudioSessionCategoryPlayback 
                error:&error];
if (!success) {
    // Handle error here, as appropriate
}

【讨论】:

  • 更具体地说 NSError* 错误; [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &amp;error]; if( 错误 ) { }
  • 还需要添加AVFoundation框架和#import "AVFoundation/AVAudioSession.h"
  • @KenPletzer 谢谢肯,感谢您的评论。我对您的代码做了一些小调整(检查成功值而不是错误的存在)并将其放入答案中。
【解决方案2】:
_player.useApplicationAudioSession = NO;

【讨论】:

  • 从 iOS6 开始不推荐使用
  • 属性使用ApplicationAudioSession的任何其他替代方案?我发现苹果没有 useApplicationAudioSession 的任何替换属性:(
【解决方案3】:

在 Swift 中:在播放声音/视频之前执行一次(例如在应用程序开始时)

do{
  try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
  //Didn't work
}

【讨论】:

    【解决方案4】:

    对于将来的任何人,我知道这个问题已经得到解答,但是我在我的应用中播放视频时遇到了问题,导致像 spotify、youtube 等应用停止播放它的音频,所以我最终使用了这个:

    NSError *silentSwitcherror = nil;
    BOOL silentSwitchSuccess = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&silentSwitcherror];
    if (silentSwitchSuccess)
    {
    //put whatever video code you are trying to play
    }
    else
    {
    //put how to handle failed instances.
    }
    

    【讨论】:

      【解决方案5】:

      导入 AVFoundation 后,只需将其放入您的委托中:

      [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];

      【讨论】:

        猜你喜欢
        • 2010-10-16
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        • 1970-01-01
        • 2014-02-13
        • 2016-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多