android:在 ListView 行内单击按钮播放音频

标签 android listview audio onclick media-player

我在 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/

相关文章:

android - 横向模式的方向问题

android - 如何在 Android 中找到可用的显示分辨率?

android - autoLink 与 onClick 事件

android - 如何在模拟器上启用暗模式?

java - 关于Android中BitmapFactory.Options的问题

java - 如何使用 ListView 在同一 WebView Activity 中启动不同的 URL

android - 尝试在 firebase 上填充 ListView 时没有 setter /字段

ios - TableView 的问题和音频 AVplayer 的使用

Java 蜂鸣声 : Produce sound of some specific frequencies

java - 我的线程恰好循环了 43 次然后抛出异常