私はiOSアプリケーションを作成しています(Xamarinを使用しています)、それはトレーニングアプリケーションです。本当にシンプル。あなたはiTunesを起動し、バックグラウンドでいくつかの音楽を再生し、このアプリケーションは、トレーニングのさまざまな部分で定期的な音声プロンプトを持っています。基本的なHIIT/Tabataタイマーです。AVAudioSessionアプリケーションのボリュームシステムのボリュームとは無関係
私はAVAudioSession
を使用して、音声が聞こえてきて、期待どおりに機能するときにバックグラウンドオーディオをダックします。しかし、私は、ユーザーが設定を介して音声プロンプトの音量レベルを設定できるようにしたい。私はそれがAVAudioSession
の音量レベルを設定するのと同じくらい簡単かもしれないと思っていましたが、すぐにそれが読み取り専用であることがわかりました。
私はシステムボリュームを変更したくありません。 システムの音量レベルに関係なく、自分のアプリケーションの音量を設定したいだけです。これは可能です。私はこれを知っているので、私はこの事をしてくれるアプリを私の目の前に持っているからです。私の唯一の問題は、私のAVAudioSession
の中に私のアプリのオーディオの音量を設定する方法がわからないということです。
システムの音量レベルとは独立して、アプリケーションが放音する音量レベルを設定する方法を知っている人はいますか?
以下私はAVAudioSession
をアクティブにし、無効にする私の呼び出しをラップするために使用するコードです:
AudioPlayer
あなたが設定することができます:あなたは、読み取り専用ボリュームのプロパティを持っていますが、と言ったように
private void ActivateAudioSession()
{
var session = AVAudioSession.SharedInstance();
session.SetCategory(AVAudioSessionCategory.Playback, AVAudioSessionCategoryOptions.DuckOthers);
session.SetActive(true);
}
private void DeactivateAudioSession()
{
new System.Threading.Thread(new System.Threading.ThreadStart(() =>
{
var session = AVAudioSession.SharedInstance();
session.SetActive(false);
})).Start();
}
ハ。私はオーディオプレーヤーが実際のアプリ内再生を制御していることを完全に忘れていて、自分のボリュームを持っています。それを指摘してくれてありがとう。 –