java - mediaPlayer.release() 使我的应用程序 java 崩溃
问题描述
我有一个项目,我在自定义数组适配器中添加了一个 MediaPlayer,我让它从数组列表中获取音频文件的资源 ID 问题是我想在音频完成后释放媒体播放器,但每次我尝试在 OnCompletion 中添加发布并尝试在媒体播放器播放声音时按下视图应用程序崩溃.. 我在网上搜索并找到了一个代码,但它给了我一个错误,我找不到这种崩溃的实际原因。这是点击监听器和媒体播放器的代码:
final MediaPlayer mediaPlayer = MediaPlayer.create(getContext(), currentWord.getVoiceResourceID());
// Wait for user's input by his click on the list's item to play the sound.
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// Storing the return value of getVoiceResourceID() into mVoice.
// I think this line can be ignored so we call the method inside the creation of the Media Player.
// Creating our media player and put our track on it.
mediaPlayer.selectTrack(currentWord.getVoiceResourceID());
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mediaPlayer.release();
}
});
}
};
我希望我能解决这个问题。
解决方案
推荐阅读
- node.js - 使用 findByIdAndUpdate 功能在 mongoDB 中插入重复数据?
- javascript - 在数据表中使用 rowGroup
- android - 无法更改片段内的活动名称
- azure - 如何使用 PowerShell 7 在 Azure 中获取任何 Blob 属性
- powershell - 是否有与 -append 相反的方式从文件中删除项目?
- google-api - 使用 Google Sheet API 的服务帐户,无需在网络浏览器中执行任何操作
- microsoft-graph-api - Microsoft Graph API - 将成员添加到组 ERROR 404 Invalid version: Groups
- node.js - 如何将两个 npm 包合并为一个
- javascript - 间隔后等待歌曲在 iframe 音频播放器中结束,然后在父级中运行函数
- r - 使用 .Rbuildignore 排除 R 文件夹的 R 文件