2011-01-23 8 views
3

私は以下の要件を満たしています。Androidアプリケーションからデフォルトのメディアプレーヤーの音量を制御することは可能ですか?

私はAndroidモバイルアプリケーションを開発しています。タイマーは、アクティビティの特定の期間設定されています。私はタイマー時間は10秒であるとき、3回鳴り、「ビープ」再生する必要があり

  1. が完了するまでに、左(すなわちゼロになる)、2回「ビープ」音タイマー時間は5秒であるとき&を完了するために、左タイマーが完了すると「ビープ音」が鳴ります。

  2. Android携帯アプリケーションを使用しているときに、Android携帯のデフォルトミュージックプレーヤーを使用して音楽を再生している可能性があります。私はロジックを実装して、ビープ音がモバイルアプリケーションから再生されているときに、最初にデフォルトの音楽の音量を下げる必要があります。&その後、ビープ音「&」を再生してから"ビープ音"が必要な回数再生されました。

これは技術的に実現可能かどうかを知りたかったです。

答えて

1

1つの方法は、他のを可能にしながら、あなたのアプリがオーディオフォーカスを要求することを可能にするプラットフォームの能力を使用することですアプリを「アヒル」にするこれはあなたにシステムを教えることができます。「ねえ、私は何かをプレイし、他のアプリにもオーディオを再生させて、演奏を続けても音量を下げてもいいと教えてください。

Managing Audio Focusセクションの関連するサンプルコードと注記は次のとおりです。過渡オーディオフォーカスを要求する場合

あなたは追加のオプションがあります:あなたが有効にするかどうかを 「ダッキング。」通常、正常に動作するオーディオアプリケーションがオーディオフォーカスを失うと、 のオーディオアプリケーションは、すぐにその再生を消音します( )。ダッキングを許可する一時的なオーディオフォーカスを要求することによって、 にフォーカスが戻るまで音量を下げた場合、他のオーディオアプリに の再生を許可してもよいことを伝えます。

AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE); 
// Request audio focus for playback 
int result = am.requestAudioFocus(afChangeListener, 
          // Use the music stream. 
          AudioManager.STREAM_NOTIFICATION, 
          //tell them it's ok to duck 
          AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK); 

if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { 
    // Start playback. 
} 

私はそれが誰かに役立ちます願っています。

関連する問題