我想使用播放视频,MPMoviePlayerController
但我希望它忽略静音开关,类似于 Youtube 视频播放器的行为。
有任何想法吗?
我想使用播放视频,MPMoviePlayerController
但我希望它忽略静音开关,类似于 Youtube 视频播放器的行为。
有任何想法吗?
使用该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
}
_player.useApplicationAudioSession = NO;
在 Swift 中:在播放声音/视频之前执行一次(例如在应用程序开始时)
do{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
//Didn't work
}
对于将来的任何人,我知道这已经得到了回答,但是我在我的应用程序中播放视频时遇到了问题,导致像 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.
}
导入 AVFoundation 后,只需将其放入您的委托中:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];