gpt4 book ai didi

android - 媒体服务 Activity

转载 作者:行者123 更新时间:2023-11-30 04:27:13 24 4
gpt4 key购买 nike

我有一项 Activity 是使用媒体播放器播放音频的服务。这就是服务

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 卡的字符串路径播放,而不是从原始文件播放。该路径保存在调用服务的类中,我如何将该字符串传递给服务类并将其放入 mediaplayer create 方法中。这是我调用服务的地方

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

最佳答案

使用 putExtra起始 Intent 命令:

music.putExtra(key, value);

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

intent.getExtras().getString(key);

请注意,在系统重新启动服务的情况下,此 Intent 可能为空。

关于android - 媒体服务 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8276381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com