【发布时间】:2017-07-19 15:10:30
【问题描述】:
我有一个 MediaPlayerService,当前在单击 ListView 项目上的播放/暂停按钮时启动。请参阅下面的代码(CustomListAdapter):
Intent intent = new Intent(v.getContext(),MediaPlayerService.class);
intent.putExtra("StreamLink",audio);
activity.startService(intent);
当这个服务由上面的代码启动时,我想创建一个带有播放/停止按钮的通知。用户应该能够退出应用程序,能够停止媒体播放,例如player.stop() 并启动 player.start()。此外,当单击通知时,它应该将用户返回到 MainActivity。
我的 MediaPlayerService.java 的代码:
public class MediaPlayerService extends Service implements MediaPlayer.OnPreparedListener {
MediaPlayer mMediaPlayer = null;
public String audioStreamLink;
public int onStartCommand(Intent intent, int flags, int startId) {
// Get the Audio Streaming Link from the parsed JSON in the Main Activity
audioStreamLink = intent.getStringExtra("StreamLink");
// Instantiate MediaPlayer, set the Audio Type and acquire a wakelock, set the Media Player Data Source and Prepare.
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mMediaPlayer.setDataSource(audioStreamLink);
} catch (IOException e) {
e.printStackTrace();
}
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.prepareAsync();
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
/** Called when MediaPlayer is ready */
@Override
public void onPrepared(MediaPlayer player) {
player.start();
}
@Override
public void onDestroy() {
mMediaPlayer.stop();
mMediaPlayer.reset();
if (mMediaPlayer != null) mMediaPlayer.release();
}
}
【问题讨论】:
标签: android service notifications onclick android-mediaplayer