Android背景音乐服务

Roh*_*hit 31 android background-music android-service android-music-player

我正在开发一个Android的娱乐应用程序.我想播放背景音乐,我想为此服务.应用程序有3个活动,必须在所有活动中播放音乐.此外,当活动暂停时,音乐必须暂停并在销毁时停止.谁能告诉我怎么做?任何链接或示例?

谢谢.

Syn*_*max 58

没有服务就做

http://www.rbgrn.net/content/307-light-racer-20-days-61-64-completion

如果您对使用mediaplayer的服务这么认真

Intent svc=new Intent(this, BackgroundSoundService.class);
startService(svc);
Run Code Online (Sandbox Code Playgroud)
public class BackgroundSoundService extends Service {
    private static final String TAG = null;
    MediaPlayer player;
    public IBinder onBind(Intent arg0) {

        return null;
    }
    @Override
    public void onCreate() {
        super.onCreate();
        player = MediaPlayer.create(this, R.raw.idil);
        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) {
        // TO DO
    }
    public IBinder onUnBind(Intent arg0) {
        // TO DO Auto-generated method
        return null;
    }

    public void onStop() {

    }
    public void onPause() {

    }
    @Override
    public void onDestroy() {
        player.stop();
        player.release();
    }

    @Override
    public void onLowMemory() {

    }
}
Run Code Online (Sandbox Code Playgroud)

在Manifest中调用此服务 确保.BackgroundSoundService字符串末尾没有空格

<service android:enabled="true" android:name=".BackgroundSoundService" />
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这对我真的很有帮助!:) (3认同)

war*_*ero 10

这里派对太晚了,但我仍然会加上我的0.02美元,谷歌发布了一个名为通用音乐播放器的免费样品,你可以学习如何在所有Android平台(汽车,手表,手机,电视......)上播放音乐.服务在后台播放音乐,检查出来非常有帮助.这是项目的链接
https://github.com/googlesamples/android-UniversalMusicPlayer


edw*_*ard 8

使用a ServiceMediaPlayer类时,@ Synxmax的答案是正确的,但是你还需要Service在Manifest中声明这个工作,如下所示:

<service
    android:enabled="true"
    android:name="com.package.name.BackgroundSoundService" />
Run Code Online (Sandbox Code Playgroud)


小智 5

我在运行它时遇到问题,我进行了一些更改以使用mp3源运行它。这是BackfrounSoundService.java文件。考虑我的mp3文件在手机的SD卡中。

public class BackgroundSoundService extends Service {
    private static final String TAG = null;
    MediaPlayer player;

    public IBinder onBind(Intent arg0) {

        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Log.d("service", "onCreate");
        player = new MediaPlayer();
        try {
            player.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/your file.mp3");
        } catch (IOException e) {
            e.printStackTrace();
        }
        player.setLooping(true); // Set looping
        player.setVolume(100, 100);

    }

    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d("service", "onStartCommand");
        try {
            player.prepare();
            player.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return 1;
    }

    public void onStart(Intent intent, int startId) {
        // TO DO
    }

    public IBinder onUnBind(Intent arg0) {
        // TO DO Auto-generated method
        return null;
    }

    public void onStop() {

    }

    public void onPause() {

    }

    @Override
    public void onDestroy() {
        player.stop();
        player.release();
    }

    @Override
    public void onLowMemory() {

    }
}
Run Code Online (Sandbox Code Playgroud)