我正在努力建立一个音乐播放器。
我做了所需的一切,工作顺利,但我似乎无法看到我的MediaController
控件。
声明: private MusicController musicController;
public class MusicController extends MediaController {
public MusicController(Context context) {
super(context);
}
@Override
public void hide() {
}
}
MainActivity.java
musicController.setMediaPlayer(this);
musicController.setAnchorView(findViewById(R.id.my_recycler_view));
musicController.setEnabled(true);
mainactivity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:background="#FF330000"
android:layout_height="match_parent"
android:id="@+id/recycler_parent_view"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
我添加了截图。
这可能是什么问题?
我已经包含了可能很重要的每个文件。请帮我看看问题。谢谢。
答案 0 :(得分:0)
我看到只有在点击一些事件后才会调用musicController.show(0);
。
您是否应该在设置anchorView后立即调用它?
来自文档
void show(int timeout)
在屏幕上显示控制器。它会在“超时”毫秒不活动后自动消失。
只试用musicController.show();
修改强>
我看到你覆盖了MusicController.hide()
方法,因此在超时期限后不应删除它,但在我看来你设置anchorView时还没有显示它
<强>更新强>
musicController.setMediaPlayer(this);
musicController.setAnchorView(findViewById(R.id.my_recycler_view));
musicController.setEnabled(true);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
musicController.show();
}
}, 5000);
我运行了你的代码,我可以在应用延迟后显示控制器。也许你应该在你的服务连接后显示它...不确定这一点,但至少你可以尝试这个代码,然后改进它。