【问题标题】:Android Service controlling MediaPlayer控制 MediaPlayer 的 Android 服务
【发布时间】:2010-02-19 19:19:46
【问题描述】:

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

当我在启动和销毁服务时告诉 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();

    }

}

【问题讨论】:

  • 能否请您发布错误。看起来你错误地关闭了服务:) 但错误会告诉我们到底是什么。
  • 查看我对您的重复帖子 stackoverflow.com/questions/2298817/… 的回答,看看是否有帮助

标签: android service media-player


【解决方案1】:

player.stop();----- 这行一定是给你nullPointerException

private MediaPlayer player; 在这里您只创建引用。但是您在onCreate() 中创建的对象仅具有本地范围。请创建一个具有类级别范围的对象,然后它将起作用。

【讨论】:

    【解决方案2】:

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

    this reference site.中显示远程服务部分

    【讨论】:

      【解决方案3】:

      您已将播放器对象声明为 OnCreate 过程的本地,删除本地声明,如下所示:

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

      【讨论】:

        【解决方案4】:

        就像写的 ** Rick D** 一样,问题是在 Mediaplayer 中声明的,您之前已经声明了播放器,只需输入:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多