我正在使用MediaController.MediaPlayerControl以便在自定义视图的底部显示MediaController,但无法使其正常工作。当我第一次播放音乐时,应该有暂停按钮可见,但相反,有播放,当我按下那个按钮时,音乐被正确暂停,状态保持不变,之后它正常工作。此外,当我播放下一首歌曲时,旧的MediaController小部件与新的小部件重叠。有时,当音乐播放时,进度/搜索栏不会刷新。它只是在按下MediaController上的某些东西(播放/暂停、前进等)时自我更新。
我发现这些问题和我的相似,但我不认为他们得到的答案会解决我的问题。
这就是我初始化控制器的方式:
private void setController()
{
controller = new MusicController(this);
controller.setPrevNextListeners(new View.OnClickListener() {
@Override
public void onClick(View v) {
playNext();
}
}, new View.OnClickListener() {
@Override
public void onClick(View v) {
playPrev();
}
});
controller.setMediaPlayer(this);
controller.setAnchorView(findViewById(R.id.song_list));
controller.setEnabled(true);
}
public void playMusic()
{
musicSrv.playSong(); //Play song in a service
setController();
controller.show(0);
controller.requestFocus();
}
我就有这个问题。不知道你是否还需要帮助,但我想我还是发帖吧。为了子孙后代,你在遵循这个教程吗?
首先,容易的问题是:由于对setcontroller()
的重复调用,您得到了多个控件实例。将函数的第一行更改为:
if (controller == null) controller = new MusicController(this);
关于播放按钮故障,我认为是因为你在音乐播放器准备好之前就显示了它(免责声明:我自己是Android新手,下面是我发现有效的东西)。
@Override
public void onPrepared(MusicPlayer player) {
// Do some other stuff...
// Broadcast intent to activity to let it know the media player has been prepared
Intent onPreparedIntent = new Intent("MEDIA_PLAYER_PREPARED");
LocalBroadcastManager.getInstance(this).sendBroadcast(onPreparedIntent);
}
// Broadcast receiver to determine when music player has been prepared
private BroadcastReceiver onPrepareReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent i) {
// When music player has been prepared, show controller
controller.show(0);
}
};
在活动的onresume()
方法中注册接收方:
// Set up receiver for media player onPrepared broadcast
LocalBroadcastManager.getInstance(this).registerReceiver(onPrepareReceiver,
new IntentFilter("MEDIA_PLAYER_PREPARED"));
根据代码的结构,您必须进行一些一般性的整理。在我的代码中,我只调用了setcontroller()
两次:从活动中的oncreate()
和oncreume()
方法调用。我还只从广播接收器调用controller.show(0)
,并调用onresume()
方法。
本文向大家介绍Android仿音乐播放器带进度的播放暂停按钮,包括了Android仿音乐播放器带进度的播放暂停按钮的使用技巧和注意事项,需要的朋友参考一下 因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度。网上找了找没有合适的,不太满意,于是自己动手写了一个。 效果如下: 主要步骤: 1、最外侧的圆环。 2、圆环内侧代表进度的圆弧。 3、暂停时在中心部位画出三角形。 4、播放时在中心部
我有播放收音机的服务
下面是我使用的代码。通过这个代码,所有活动都播放背景音乐。但是当我使用home按钮返回到这个活动时,音乐正常播放,但是抽屉将不会恢复。这意味着,如果播放了音乐,我通过home按钮返回活动,那么播放按钮将显示,而不是暂停按钮,但我希望,如果在resume上播放了音乐,那么按钮将是暂停,如果不是,则显示播放按钮。 你能告诉我在恢复活动时如何使用“播放”和“暂停”按钮吗?
我有一个按钮,我想用这个按钮控制多个MediaPlayer对象。在示例中,用户从列表中选择了3个声音,当他们正在播放时,用户点击暂停图标按钮,所有声音都应该暂停(并且暂停按钮的资源应该更改为播放图标)。如果用户再次点击播放图标,所有的声音应该继续。 如果我删除代码中的其他部分,我可以实现暂停声音,这是当前正在播放,但如果我再次单击播放按钮,声音将不会播放,什么也不会发生。 我得XML: 我的代码:
ap.pauseBackgroundAudio(CALLBACK) 暂停播放音乐。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 100%
null 关键是我使用jLayer的实现不起作用:当我执行play-pause-resume时,音频被暂停,但随后从文件中的随机点恢复。 我该怎么修好它?