如何在android中找到音乐应用程序的开始和结束时间?

如何在android中找到音乐应用程序的开始和结束时间?,android,audio,core-audio,Android,Audio,Core Audio,我正在开发一个应用程序,它应该捕获音频(FM/音乐)的开始和结束时间。我经常上网,知道这可以通过audioFocusListener实现。我已经实现了侦听器,但是没有正确地获取值。i、 e当音频获得焦点和失去焦点时,这没有给出正确的值。 是否有其他方法来实现相同的功能 public class AudioManagerExample extends Activity implements OnAudioFocusChangeListener{ AudioReceiver adreceiver

我正在开发一个应用程序,它应该捕获音频(FM/音乐)的开始和结束时间。我经常上网,知道这可以通过audioFocusListener实现。我已经实现了侦听器,但是没有正确地获取值。i、 e当音频获得焦点和失去焦点时,这没有给出正确的值。
是否有其他方法来实现相同的功能

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 */

 }
}

提前感谢

我在这里粘贴了一些代码,以便您能了解情况,按照您的要求执行。。 希望这能对你有所帮助

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);
       }
    };

您可以通过getduration()方法获取音频的结束时间@阿卡什:谢谢,但问题是我需要每隔一段时间调用mediaPlayer.getDuration()方法。但是我无法得到音乐停止播放的时间?嗨,你能发布你的OnAudioFocusChangeListener代码来捕获音频的开始和结束时间吗?@vishwa:我已经编辑了我的问题并发布了代码。我尝试了获得值和损失值,但没有得到正确的值。@Hasmukh:谢谢你的回复,你展示的方法是我当前的方法,但我希望避免线程持续运行。因此,寻找替代方法。