gpt4 book ai didi

android - 如何在android中通过通知播放音乐?

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

我使用调用播放器服务的通知,该播放器应该播放音乐。但是我不知道怎么后台播放?

你可以看到我的代码如下:

1.首先文件调用播放器服务

Intent i=new Intent(this, PlayerService.class);

i.putExtra(PlayerService.EXTRA_PLAYLIST, "main");
i.putExtra(PlayerService.EXTRA_SHUFFLE, true);

startService(i);

2.第二个文件是播放音乐的类

public class PlayerService extends Service {
public static final String EXTRA_PLAYLIST="EXTRA_PLAYLIST";
public static final String EXTRA_SHUFFLE="EXTRA_SHUFFLE";
private boolean isPlaying=false;

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String playlist=intent.getStringExtra(EXTRA_PLAYLIST);
boolean useShuffle=intent.getBooleanExtra(EXTRA_SHUFFLE, false);

play(playlist, useShuffle);
return(START_NOT_STICKY);
}

@Override
public void onDestroy() {
stop();
}

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

private void play(String playlist, boolean useShuffle) {
if (!isPlaying) {
Log.w(getClass().getName(), "Got to play()!");
isPlaying=true;

Notification note=new Notification(R.drawable.stat_notify_chat, "Can you hear the music?", System.currentTimeMillis());
Intent i=new Intent(this, FakePlayer.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);

PendingIntent pi=PendingIntent.getActivity(this, 0,i, 0);

note.setLatestEventInfo(this, "Fake Player","Now Playing: \"Ummmm, Nothing\"", pi);
note.flags|=Notification.FLAG_NO_CLEAR;

startForeground(1337, note);
}
}
private void stop() {
if (isPlaying) {
Log.w(getClass().getName(), "Got to stop()!");
isPlaying=false;
stopForeground(true);
}
}
}

谢谢和问候,奥米德

最佳答案

可能您已经找到了答案,但也许它会对其他人有所帮助。即,通知类有 sound方法,需要在通知发生时要播放的文件的路径。参见 notification examples (特别是“添加声音”段落)以获取更多信息。

关于android - 如何在android中通过通知播放音乐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8292392/

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