当前位置: 首页 > 知识库问答 >
问题:

控制Android或任何其他音乐播放器的默认音乐播放器

赫连捷
2023-03-14

如何控制Android或任何其他播放器的默认音乐播放器?通过控制,我的意思是暂停,播放,下一个等等。我必须绑定服务吗?我尝试使用IMediaPlaybackService,但它不起作用。当然有出路,因为我在Android市场上看到了控制音乐播放器的应用程序。任何想法?

共有3个答案

方博
2023-03-14

如果要控制音乐播放器(当前播放的音乐播放器),可以通过以下方式向其发送按键事件:

if (mAudioManager == null) mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);

KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY);
mAudioManager.dispatchMediaKeyEvent(event);

这是一种更安全的方式,因为通常广播keyEvent会导致一次播放多个玩家。

注意:它需要有minSdk 19或更多。

景胜涝
2023-03-14

发送Intent广播接收器的问题是,用户必须打开音乐播放器至少一次,也,它不适用于许多第三方音乐播放器。

下面给出的代码适用于所有音乐播放器。

long eventtime = SystemClock.uptimeMillis();

Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
sendOrderedBroadcast(downIntent, null);

Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent);
sendOrderedBroadcast(upIntent, null);

/*NEXT*/
Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN,   KeyEvent.KEYCODE_MEDIA_NEXT, 0);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
sendOrderedBroadcast(downIntent, null);

/*PREVIOUS*/
Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
sendOrderedBroadcast(downIntent, null);

我已经在索尼、宏达电和三星设备上测试了这段代码。

此代码模拟免提(耳机)的播放/暂停按钮动作。

蒙峰
2023-03-14
AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

if(mAudioManager.isMusicActive()) {
    Intent i = new Intent(SERVICECMD);
    i.putExtra(CMDNAME , CMDSTOP );
    YourApplicationClass.this.sendBroadcast(i);
}

您可以通过获取audiomanager,然后向其发送命令来实现。

这些是命令。

 public static final String CMDTOGGLEPAUSE = "togglepause";
 public static final String CMDPAUSE = "pause";
 public static final String CMDPREVIOUS = "previous";
 public static final String CMDNEXT = "next";
 public static final String SERVICECMD = "com.android.music.musicservicecommand";
 public static final String CMDNAME = "command";
 public static final String CMDSTOP = "stop";
 类似资料:
  • 基于jPlyer开发的音乐播放插件. 支持如下功能: 1,进度条播放 。 2,上一首,下一首,随机播放 。 3,播放完每一首后,自动播放下一首,如果下一首是最后一首,则自动播放第一首。 4,支持鼠标滚动操作,能上下翻滚屏幕。 5,歌曲时间 倒计时 ,而不是从0开始计时。 效果演示地址: http://www.cssrain.cn/jPlayer/jPlayerV2.0/demo.html

  • 用ios自带的AVAudio实现的音乐播放器。可以播放存放在电脑里面的音乐文件,可以调整声音音量。播放的时候界面会有下雪的效果。可以作为练习动画和音频播放的例子。 [Code4App.com]

  • Decibel 是一个 GTK+ 的音乐播放器。

  • MPlayer音乐播放器 MPlayer V2.0.0贺新春版于2017.01.01正式发布,本次更新要点: 代码重写,拆分核心功能和特效,只为更好的自定义 支持HTML结构自定义,只需添加指定class即可 新增诸多API接口,方便调用 删除部分无用的配置项 新增多个回调函数 新增多个配置项 截图预览 使用方法 var player = new MPlayer({ // 容器选择器名称

  • 我正在开发一个应用程序,它可以使用语音控制音乐播放器。例如,当我说"play"音乐播放器播放歌曲,或者说"Next"音乐播放器将播放下一首歌曲,等等。我已经谷歌了,但没有找到任何想法或源代码。 问题: > 使用语音控制音乐播放器的想法 源代码示例。 提前感谢。 可能相关:Android-语音控制-媒体意图

  • ap.seekBackgroundAudio(OPTION | position, CALLBACK) 控制音乐播放进度。 OPTION 参数说明 名称 类型 必选 描述 position Number 是 音乐位置,单位秒 错误码描述 error 描述 12 失败时会有对应描述 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/