如何时间可持续播放mp3时,应用程序启动和停止在后台,当用户关闭应用程序 [英] How to play mp3 continuosly when application starts and stop when user close app in background

查看:105
本文介绍了如何时间可持续播放mp3时,应用程序启动和停止在后台,当用户关闭应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在写一个应用程序中,我允许用户查看图像,并选择其中一个来设置墙纸,并在此我也想,当用户启动一个应用程序播放MP3和停止MP3,当用户关闭应用程序

我已存储的MP3音乐文件中的 RES /生的文件夹,即: mymusic.mp3

我知道如何播放和停止MP3音乐通过点击按钮,但不知道如何在后台播放MP3时间可持续,玩的时候,用户启动一个应用程序,并停止在用户关闭应用程序。

请帮助我的人,其急需的任何建议,样品code将是有益的......

  MediaPlayer的MPlayer的;
的MediaPlayer媒体播放器= MediaPlayer.create(背景下,R.raw.music_file);

按钮buttonPlay;
按钮buttonStop;

buttonPlay =(按钮)findViewById(R.id.play);
    buttonPlay.setOnClickListener(新OnClickListener(){

        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            MPLAYER = MediaPlayer.create(getApplicationContext(),R.raw.mymusic.mp3);
            mPlayer.start(); //开始播放音乐
        }
    });

buttonStop =(按钮)findViewById(R.id.stop);
    buttonStop.setOnClickListener(新OnClickListener(){

        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            如果(MPLAYER = NULL和放大器;!&安培; mPlayer.isPlaying()){//如果正在播放音乐已
                mPlayer.stop(); //停止播放音乐
            }
        }
    });
 

解决方案

这部分需要在每一个活动的的onPause:

自动停止音乐时,从应用程序用户出口

 公共无效的onPause(){
super.onPause();
    上下文的背景下= getApplicationContext();
            ActivityManager AM =(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
            名单< RunningTaskInfo> taskInfo = am.getRunningTasks(1);
            如果(!taskInfo.isEmpty()){
              组件名topActivity = taskInfo.get(0).topActivity;
              如果(!topActivity.getPackageName()。等于(context.getPackageName())){
               StopPlayer();
                Toast.makeText(xYourClassNamex.this,你离开你的APP音乐停下,Toast.LENGTH_SHORT).show();
              }
            }
  }
 

这部分需要在每一个活动的onResume:

播放时自动恢复用户应用程序的音乐

 公共无效onResume()
    {
       super.onResume();
     StartPlayer();
    }
 

您可以把您的播放器functionalty全球一流。在每一个类可以调用它的球员。所以你PLYER将保持在整个应用程序一样。 &放大器;你可以启动或停止它。在暂停方法,它会检测用户阉离开这个App或不。如果用户从应用程序的左边,这样美国可以阻止它。

GlobalPlayer.class

 公共MediaPlayer的MPlayer的;

公共无效StartPlayer(){
的MediaPlayer媒体播放器= MediaPlayer.create(背景下,R.raw.music_file);


            // TODO自动生成方法存根
            MPLAYER = MediaPlayer.create(getApplicationContext(),R.raw.mymusic.mp3);
            mPlayer.start(); //开始播放音乐

}
公共无效StopPlayer(){
            如果(MPLAYER = NULL和放大器;!&安培; mPlayer.isPlaying()){//如果正在播放音乐已
                mPlayer.stop(); //停止播放音乐
          }
}
 

I am writing an app in which i am allowing user to view images and select one of them to set an WALLPAPER, and in this i also want to play an mp3 when user starts an App and stop that mp3 when user close application

I have stored an MP3 Music file in res/raw folder namely : mymusic.mp3

I know how to play and stop MP3 music by using click on button, but don't know how to play mp3 in background continuosly, play when user start an app and stop when user close an app.

Please someone help me, its much needed any suggestion, sample code would be helpful...

MediaPlayer mPlayer;
MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.music_file);

Button buttonPlay;
Button buttonStop;

buttonPlay = (Button) findViewById(R.id.play);
    buttonPlay.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            mPlayer = MediaPlayer.create(getApplicationContext(),R.raw.mymusic.mp3);
            mPlayer.start();//Start playing the music
        }
    });

buttonStop = (Button) findViewById(R.id.stop);
    buttonStop.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(mPlayer!=null && mPlayer.isPlaying()){//If music is playing already
                mPlayer.stop();//Stop playing the music
            }
        }
    });

解决方案

This part has to be in EVERY activity's onPause:

Stop music automatically when user exit from app

public void onPause(){
super.onPause();
    Context context = getApplicationContext();
            ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);
            if (!taskInfo.isEmpty()) {
              ComponentName topActivity = taskInfo.get(0).topActivity; 
              if (!topActivity.getPackageName().equals(context.getPackageName())) {
               StopPlayer();
                Toast.makeText(xYourClassNamex.this, "YOU LEFT YOUR APP. MUSIC STOP", Toast.LENGTH_SHORT).show();
              }
            }
  }

This part has to be in EVERY activity's onResume:

Play music automatically when user resume the app

Public void onResume()
    {
       super.onResume();
     StartPlayer();
    }

You can put your Player functionalty in global class. where every class can call it's player. so your plyer will be remain same in whole application. & you can start or stop it. on Pause method it will detect wether user left this App or not. if user left from the app so u can stop it.

GlobalPlayer.class

public MediaPlayer mPlayer;

public void StartPlayer(){
MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.music_file);


            // TODO Auto-generated method stub
            mPlayer = MediaPlayer.create(getApplicationContext(),R.raw.mymusic.mp3);
            mPlayer.start();//Start playing the music

}
public void StopPlayer(){
            if(mPlayer!=null && mPlayer.isPlaying()){//If music is playing already
                mPlayer.stop();//Stop playing the music
          }
}

这篇关于如何时间可持续播放mp3时,应用程序启动和停止在后台,当用户关闭应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆