首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制背景音乐android

控制背景音乐android
EN

Stack Overflow用户
提问于 2014-01-02 20:15:01
回答 1查看 254关注 0票数 0

我正在使用服务播放背景音乐。问题是,当我完成练习后,音乐会继续播放。当我按下home键音乐停止时,我想让音乐在应用程序使用时继续播放,并在home键按下帮助我时停止。你能告诉我怎么做吗?

代码语言:javascript
复制
private static final String TAG = null;
MediaPlayer player;
@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;

}
@Override
public void onCreate() {
    super.onCreate();


    player = MediaPlayer.create(this, R.raw.sample);
    player.setLooping(true); // Set looping
    player.setVolume(100,100);

}
public int onStartCommand(Intent intent, int flags, int startId) {


    player.start();

    return 1;


}

public void onStart(Intent intent, int startId) {
    // TODO



}
public IBinder onUnBind(Intent arg0) {
    // TODO Auto-generated method stub

    return null;
}

public void onStop() {

}
public void onPause() {



    }


@Override
public void onDestroy() {

    player.stop();
    player.release();
}

@Override
public void onLowMemory() {




}

}

EN

回答 1

Stack Overflow用户

发布于 2014-01-02 20:22:12

您应该使用服务并播放音乐。

http://developer.android.com/guide/components/services.html

服务在后台运行,所以即使你切换活动,它仍然会运行,你可以在那里播放你的音乐。

您可以启动服务,然后在需要时停止它。您还可以将服务绑定到活动。查看上面链接中的文档以了解更多信息。

示例:

https://thenewcircle.com/s/post/60/servicesdemo_using_android_services

代码语言:javascript
复制
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class MyService extends Service {
    private static final String TAG = "MyService";
    MediaPlayer player;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onCreate");

        player = MediaPlayer.create(this, R.raw.braincandy);
            // song is res/raw/yourmusicfile.mp3
        player.setLooping(false); // Set looping
    }

    @Override
    public void onDestroy() {
        Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onDestroy");
        player.stop();
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onStart");
        player.start();
    }
}

现在只需启动该服务,您可以在需要时停止该服务。您可以在活动之间切换,但服务仍在播放音乐时运行。

因为我上传到DropBox的代码太大了。这是我做的样品

https://www.dropbox.com/s/fjc4krpcwsg7qm6/ServicesDemo.zip

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20882767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档