java - MediaPlayer.start 不播放音乐
问题描述
我正在制作一个音乐应用程序,并且我正在使用手机中的外部存储通过该应用程序访问数据。虽然我已经能够将音乐添加为列表视图,但是当我尝试在“onItemClickListener”上播放音乐时,选择的 mp3 文件不会播放。
这是我选择特定项目的代码:
public void doStuff(){
listView= (ListView)findViewById(R.id.MusicList);
arraylist = new ArrayList<>();
getMusic();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arraylist );
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// open music player to play desired song
mediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
}
});
mediaplayer.start();
}
最后,这是 Logcat 上的错误:
07-02 18:17:12.327 21863-21863/com.example.daniel.queuemusic V/MediaPlayer-JNI: start
07-02 18:17:12.327 21863-21863/com.example.daniel.queuemusic V/MediaPlayerNative: start
07-02 18:17:12.327 21863-21863/com.example.daniel.queuemusic E/MediaPlayerNative: start called in state 0, mPlayer(0x0)
07-02 18:17:12.327 21863-21863/com.example.daniel.queuemusic V/MediaPlayerNative: message received msg=100, ext1=-38, ext2=0
notify(100, -38, 0) callback on disconnected mediaplayer
每次单击列表中的项目(mp3 文件)时都会发生同样的错误。
我已经在网上查过了,但到目前为止我还没有弄明白。如果有人能给我任何建议,我真的很感激!
解决方案
推荐阅读
- php - Guzzle3 发送原始的 Post 请求
- typescript - 如何使用 typescript-eslint 的解析器和实用程序在代码中查找所有导入?
- c# - 在 ASP.NET Core MVC 中如何插入返回 List 的方法的返回值
在一个会话中 - android - SAF - 将文件从私有应用程序文件夹复制到授权的 SAF 文件夹时出现无效的 Uri 错误
- bash - 以下 bash 脚本中的 Count 需要什么?
- php - Laravel 模型 - 返回最高和最低价格的函数
- selenium - 使用 Selenium 单击提交按钮
- c++ - 这两段代码有何不同?
- vue.js - 我想在 vuex 状态更改时更新组件的状态
- javascript - 使用 getImageData() 后返回全 0