我必须实现用于创建具有暂停和恢复状态的音频的应用程序,当我的应用程序作为启动时音频启动,当我按下模拟器上的后退按钮时,音频音乐处于暂停状态,但是当我的活动回来时从停止状态到前台我的音频音乐未恢复。这是我的代码。
public class Audio_Activity extends Activity
{
private MediaPlayer mp;
Button btnStartStop ;
Button btnChapter ;
Button btnOne;
Button btnTwo;
Button btnThree;
Button btnFour;
Button btnFive;
int length;
ImageView imgVw;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.audio);
init();
mp=MediaPlayer.create(Audio_Activity.this,R.raw.ennamo_yadho);
Log.e("Song is playing","in Mediya Player ");
if(mp!=null)
{
mp.setLooping(false);
mp.start();
btnChapter.setEnabled(false);
System.out.println("B4 button Click!!!!");
}
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp)
{
mp.stop();
mp.release();
btnChapter.setEnabled(true);
System.out.println("Music is over and Button is enable !!!!!!");
}
});
btnStartStop.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
if(mp.isPlaying())
{
if(mp!=null)
{
mp.pause();
}
}
else
{
// Resume song
if(mp!=null)
{
mp.start();
}
}
}
});
btnOne.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
imgVw.setImageResource(R.raw.chocklate);
}
}
);
btnTwo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imgVw.setImageResource(R.raw.creame);
}
});
btnThree.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imgVw.setImageResource(R.raw.schocklate);
}
});
btnFour.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imgVw.setImageResource(R.raw.pinapple);
}
});
btnFive.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imgVw.setImageResource(R.raw.strobery);
}
});
}
@Override
protected void onResume()
{
super.onResume();
System.out.println("Activity is Resume !!!");
}
@Override
protected void onStart()
{
super.onStart();
System.out.println("Activity is Started !!!");
}
@Override
protected void onRestart() {
super.onRestart();
System.out.println("Activity is Re-Started !!!");
if(mp.isPlaying())
{
if(mp!=null)
{
length=mp.getCurrentPosition();
mp.seekTo(length);
mp.start();
}
}
}
@Override
protected void onPause() {
super.onPause();
System.out.println("Activity is Pause!!!");
}
@Override
protected void onStop() {
super.onStop();
System.out.println("Activity is Stop !!!");
}
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("Activity is Destroyed !!!");
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{ //Back key pressed
//Things to Do
if(mp!= null)
{
if(mp.isPlaying())
{
mp.pause();
//mp=null;
}
}
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
您应该使用 android MediaPlaybackService 进行后台播放、暂停、停止或仅通过单击通知打开活动。当单击后退按钮时,它将与按钮单击事件或通知栏上的按钮绑定一个 PendingIntent 以控制音频播放。
用这个要点代码 https://gist.github.com/AvatarQing/9106775对于 AudioPlayer,尝试使用媒体播放服务 https://android.googlesource.com/platform/packages/apps/Music/+/master/src/com/android/music/MediaPlaybackService.java类或尝试对其进行逆向工程owncloud https://github.com/owncloud/android/blob/master/src/com/owncloud/android/media/MediaService.java code.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)