MPMoviePlayerController
を使用してビデオを再生したいが、YouTubeのビデオプレーヤーの動作と同様に、ミュートスイッチを無視したい。MPMoviePlayerControllerでミュートスイッチを無視する方法
アイデア?
MPMoviePlayerController
を使用してビデオを再生したいが、YouTubeのビデオプレーヤーの動作と同様に、ミュートスイッチを無視したい。MPMoviePlayerControllerでミュートスイッチを無視する方法
アイデア?
AVAudioSession
カテゴリAVAudioSessionCategoryPlayback
を使用すると、あなたのアプリはYoutubeアプリのようなミュートスイッチを無視します。例えば
(コメントでケン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* error; [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &error]; if(error) { }
–
また、AVFoundationフレームワークと#import "AVFoundation/AVAudioSession.h"を追加する必要があります。 –
@KenPletzer Kenに感謝します。私はあなたのコード(エラーの存在よりもむしろ成功の値を調べる)を微調整し、答えに入れました。 –
_player.useApplicationAudioSession = NO;
これはiOS6として推奨されていません – tassock
プロパティuseApplicationAudioSessionの他の代替手段はありますか?私はappleがuseApplicationAudioSessionの代わりのプロパティを持っていないことを発見しました:( –
あなたはAVFoundationは自分のデリゲートでこれを入れてインポートした後:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlaybackエラー:nil];スウィフトで
:あなたは、将来的に誰のために
do{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
//Didn't work
}
(アプリケーションの冒頭で、たとえば)、サウンド/ビデオを再生する前に、一度、私はこれはすでに回答されているけど、私が持っていたこれを行ってください私のアプリでビデオを再生することで、スポットライトや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.
}
この質問はコミュニティによって保護されている必要があります。 – JJ86