Android服务控制MediaPlayer

Cha*_*uxe 6 service android media-player

我想要做的就是通过服务在我的应用程序中控制背景音乐,这样我就可以启动它并从任何活动中停止它.

当我将Toast的服务告诉Toast时,我已经完成了所有设置,但是只要我将媒体播放到那里而不是它开始正常并开始播放音乐但是只要点击一个按钮就可以停止播放服务我得到一个错误和一个力量关闭.

请有人帮助我看看我做错了什么..我对Android开发很新,我猜它会变得容易.

这是我的代码:

import android.app.Service;

import android.content.Intent;

import android.media.MediaPlayer;

import android.os.IBinder;

import android.widget.Toast;

public class MyService extends Service {

    private MediaPlayer player;

    @Override
    public IBinder onBind(Intent intent) {

        return null;

    }

    @Override
    public void onCreate() {

        super.onCreate();

        Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();

        MediaPlayer player = MediaPlayer.create(MyService.this, R.raw.my_music);

        player.start();

        player.setLooping(true);

    }

    @Override
    public void onDestroy() {

        super.onDestroy();

        player.stop();

        Toast.makeText(this, "Service Stopped", Toast.LENGTH_SHORT).show();

    }

}
Run Code Online (Sandbox Code Playgroud)

Rit*_*une 6

player.stop();-----这条线必须给你nullPointerException.

private MediaPlayer player;在这里,您只创建reference.But您正在创建的对象onCreate()只有本地范围.请创建一个具有类级别范围的对象,然后它将起作用.


Ivo*_*rus 0

onBind仅当它是“本地服务”时,方法才返回 null。如果我理解正确的话,您想创建远程服务。

显示此参考站点中的远程服务部分。