で使用する独自のカスタム コントロールを作成しましたMPMoviePlayerController
。これまでのところ、ミュート ボタン コントロール以外はすべて機能します。
AVAudioSession
のインスタンスを作成する前に、次のコードを使用してを構成しましたMPMoviePlayerController
。
NSError *modeError = nil;
[self.audioSession setMode:AVAudioSessionModeMoviePlayback error:&modeError];
if (modeError != nil) {
NSLog(@"Error setting mode for AVAudioSession: %@", modeError);
}
NSError *categoryError = nil;
[self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&categoryError];
if (categoryError != nil) {
NSLog(@"Error setting category for AVAudioSession: %@", categoryError);
}
次に、ミュート ボタンのコールバック メソッドに次のコードを記述します。
NSError *activeError = nil;
[self.audioSession setActive:NO error:&activeError];
if (activeError != nil) {
NSLog(@"Error setting inactive state for AVAudioSession: %@", activeError);
}
[ミュート] ボタンをクリックすると、次の役に立たないエラーが表示されます。
Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"
フレームワークにリンクしていAVFoundation
ます。
私の人生では、アプリケーションの再生オーディオを減らしたりミュートしたりする方法を見つけることができないので、これは本当に私を悩ませ始めています。
システムのグローバル ボリュームを変更したくありませんAVAudioSession
AVAudioSessionCategoryPlayback
。カテゴリで定義されているアプリケーション レベルのボリュームだけを変更します。
の音量は設定できるようですが、 の音量は設定できAVAudioPlayer
ないようMPMoviePlayerController
です。のインスタンスを作成してボリュームを設定するだけというSOに関する他の投稿を見てきましたAVAudioPlayer
が、これによりアプリがクラッシュするだけであり、initWithContentsOfURL:error:
orinitWithData:error:
を使用せず、代わりに `初期化'。
どんな助けでも大歓迎です。