を使用してビデオを再生したいのです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の場合:サウンド/ビデオを再生する前に(たとえば、アプリケーションの最初に)これを1回実行します。
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エラー:nil];