我想使用MPMoviePlayerController
播放视频,但我希望它忽略静音开关,类似于Youtube视频播放器的行为。
有什么想法吗?
答案 0 :(得分:48)
使用AVAudioSession
类别AVAudioSessionCategoryPlayback
,您的应用会忽略静音开关,例如Youtube应用。
例如(在评论中受到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
}
答案 1 :(得分:2)
_player.useApplicationAudioSession = NO;
答案 2 :(得分:1)
导入AVFoundation后,只需将其放入代理中:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
答案 3 :(得分:1)
:在播放声音/视频之前执行此操作(例如在应用程序开始时)
do{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
//Didn't work
}
答案 4 :(得分:1)
对于未来的任何人,我知道这已经得到了解答,但我在我的应用中播放视频时遇到了问题,导致像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.
}