作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我必须实现用于创建状态为暂停和恢复的音频的应用程序,当我的应用程序作为启动时音频开始时,当我按下模拟器上的后退按钮时,音频音乐处于暂停状态但是当我 Activity 从停止状态回到前台 我的音频音乐没有恢复。这是我的代码。
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 进行后台播放、暂停、停止或仅通过单击通知打开 Activity 。当点击后退按钮时,它将绑定(bind)一个 PendingIntent 到按钮点击事件或通知栏上的按钮以控制音频播放。
使用这个 Gist Code 对于 AudioPlayer,尝试使用 MediaPlaybackService类或尝试对此进行逆向工程 owncloud代码。
关于java - 如何在 Android 中恢复我的音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522185/
我是一名优秀的程序员,十分优秀!