我在 res/raw
文件夹中有一些音频文件 (m4a/mp3)。我的 Activity 有一个 ListView ,它会膨胀,这样每个列表项都有一个 TextView 、一个 ImageView 和一个按钮。我希望在单击此按钮时播放音频文件。我如何实现这一目标?我试过 MediaPlayer.create(this, R.raw.example);
但是这行代码显示错误,因为它在 ListAdapter 类而不是 Activity 类中。任何帮助,任何关于如何做的提示,我都将不胜感激,我可以进行编码。`
最佳答案
您可以通过多种方式获取Context
。
可以在适配器的getView()
方法中从当前 View 获取:
view.getContext();
或者您可以将上下文传递给适配器的构造函数,记住一个好的做法是使用 WeakReference
,这样您就不会产生泄漏。
一旦您有了Context
,您正在使用的代码就可以正常工作了:
player = MediaPlayer.create(context, R.raw.example);
player.prepare();
如果您使用弱引用,您的代码将是:
player = MediaPlayer.create(mContext.get(), R.raw.example);
player.prepare();
关于android:在 ListView 行内单击按钮播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22125442/