在 Android 的 ListView 项目中使用从 SQLite 加载的文件路径中的按钮在媒体播放器上播放声音文件
Play a sound file on mediaplayer with button within ListView item in Android with filepath loaded from SQLite
我录制了一些声音并将它们保存在 /storage/emulated/0/AudioRecorder 文件夹中。然后我将文件路径保存在 SQLite 数据库中。因此,当我基于 baseadapter 填充我的列表视图时,我的 getview 具有按钮 clicklistener。到目前为止,一切似乎都很好。但是当我点击按钮时没有任何反应。调试显示按钮找到了正确列表项的位置,播放声音的方法找到了文件路径但没有播放。
public void playSoundItem(int id)
{
final String SoundFile = MyItems.get(id).getItemFilepath();
mMediaPlayer = new MediaPlayer();
try {
//Uri mp4 = Uri.parse(file + "/" + myList.get(soundPosition));
//Uri mp4 = Uri.parse(SoundFile);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(SoundFile);
mMediaPlayer.prepare();
mMediaPlayer.start();
mMediaPlayer.setOnCompletionListener(onCompletionListener);
} catch (Exception e) {
}
}
我已经用 uri 解析测试了它,然后又做了同样的事情。 SoundFile 的值为:
/storage/emulated/0/AudioRecorder/MySound21-04-2015 20:38.mp4
我是否必须将其解析为其他内容
你先检查listview是否可以点击
我录制了一些声音并将它们保存在 /storage/emulated/0/AudioRecorder 文件夹中。然后我将文件路径保存在 SQLite 数据库中。因此,当我基于 baseadapter 填充我的列表视图时,我的 getview 具有按钮 clicklistener。到目前为止,一切似乎都很好。但是当我点击按钮时没有任何反应。调试显示按钮找到了正确列表项的位置,播放声音的方法找到了文件路径但没有播放。
public void playSoundItem(int id)
{
final String SoundFile = MyItems.get(id).getItemFilepath();
mMediaPlayer = new MediaPlayer();
try {
//Uri mp4 = Uri.parse(file + "/" + myList.get(soundPosition));
//Uri mp4 = Uri.parse(SoundFile);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(SoundFile);
mMediaPlayer.prepare();
mMediaPlayer.start();
mMediaPlayer.setOnCompletionListener(onCompletionListener);
} catch (Exception e) {
}
}
我已经用 uri 解析测试了它,然后又做了同样的事情。 SoundFile 的值为: /storage/emulated/0/AudioRecorder/MySound21-04-2015 20:38.mp4 我是否必须将其解析为其他内容
你先检查listview是否可以点击