1

オーディオ (FM /音楽) の開始時間と終了時間をキャプチャするアプリケーションを開発しています。私はよくネットサーフィンをして、これが audioFocusListener によって実現できることを知りました。リスナーを実装しましたが、値を適切に取得していません。つまり、オーディオがフォーカスを得てフォーカスを失った場合、これは適切な値を与えていません。 オーディオの再生時と一時停止時に OnAudioFocusChangeListener は実行されませんか?
同じものを実装する別の方法はありますか?

public class AudioManagerExample extends Activity implements OnAudioFocusChangeListener{
 AudioReceiver adreceiver;

 @Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 AudioManager am =   (AudioManager) getSystemService(AUDIO_SERVICE);
 am.requestAudioFocus(this,AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN)
}

@Override
 public void onAudioFocusChange(int focusChange) {
 Log.d("AudioManager", "Inside on audio focus change");
  if(focusChange == AudioManager.AUDIOFOCUS_GAIN)
     Log.d("AudioManager", "audio focus gained");
  if(focusChange == AudioManager.AUDIOFOCUS_LOSS)
     Log.d("AudioManager", "audio focus lossed"); 
  /* Here i am always getting value -1 */

 }
}

前もって感謝します

4

1 に答える 1

0

ここにいくつかのコードを貼り付けているので、アイデアを得ることができます。要件に従ってください..これがお役に立てば幸いです。

public void updateProgressBar() 
{
    mHandler.postDelayed(mUpdateTimeTask, 100);        
}   

/**
 * Background Runnable thread
 * */
private Runnable mUpdateTimeTask = new Runnable() 
{
       public void run()
       {
           long totalDuration = mp.getDuration();
           long currentDuration = mp.getCurrentPosition();

           // Displaying Total Duration time
           songTotalDurationLabel.setText(""+utils.milliSecondsToTimer(totalDuration));
           // Displaying time completed playing
           songCurrentDurationLabel.setText(""+utils.milliSecondsToTimer(currentDuration));

           // Updating progress bar
           int progress = (int)(utils.getProgressPercentage(currentDuration, totalDuration));
           //Log.d("Progress", ""+progress);
           songProgressBar.setProgress(progress);

           // Running this thread after 100 milliseconds
           mHandler.postDelayed(this, 100);
       }
    };
于 2012-07-09T11:16:14.030 に答える