【问题标题】:Media Service Activity媒体服务活动
【发布时间】:2012-01-06 18:19:11
【问题描述】:

我有一个活动,它是一项使用媒体播放器播放音频的服务。这是服务

class MusicService extends Service implements OnCompletionListener {
 MediaPlayer mediaPlayer;

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

 @Override
 public void onCreate() {
  mediaPlayer = MediaPlayer.create(this, R.raw.s);// raw/s.mp3
  mediaPlayer.setOnCompletionListener(this);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (!mediaPlayer.isPlaying()) {
  mediaPlayer.start();
}
return START_STICKY;
 }

  public void onDestroy() {
   if (mediaPlayer.isPlaying()) {
  mediaPlayer.stop();
   }
   mediaPlayer.release();
 }

 public void onCompletion(MediaPlayer _mediaPlayer) {
stopSelf();
 }

}

我希望它不是从那个原始文件播放,而是从一个来自 sd 卡的字符串的路径播放。路径保存在调用服务的类中我如何将该字符串传递给服务类并将其放入媒体播放器创建方法中。这是我调用服务的地方

   private void playAudio(String url) throws Exception{
Intent music = new Intent(this,MusicService.class);
startService(music);

}

【问题讨论】:

    标签: android service path android-intent media-player


    【解决方案1】:

    使用起始Intent的putExtra命令:

    music.putExtra(key, value);
    

    然后在您的媒体播放器服务的onStartCommand 中获取传递的信息:

    intent.getExtras().getString(key);
    

    请注意,在系统重新启动服务时,此意图可能为空。

    【讨论】:

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