【问题标题】:How to fix error (1, -2147483648)如何修复错误 (1, -2147483648)
【发布时间】:2016-05-21 06:35:06
【问题描述】:

我正在尝试从模拟器中获取所有 .mp3 文件并将其显示在列表视图中,并尝试通过在列表视图中设置 onitemclick 来播放媒体文件。我能够显示设备中的所有歌曲但是当我单击它显示错误的列表项。我已经完成了几乎所有 E/MediaPlayer: error (1, -2147483648) 错误问题,但无法理解在哪里进行更改。这是我的 java 代码

public class MainActivity extends ListActivity {
private int no;
private static final String SD_PATH =new String("/mnt/shared/New_folder_(2)");
private List<String>songs=new ArrayList<String>();
private MediaPlayer mp=new MediaPlayer();
private void playSong(String songPath) {
    try {
        mp.reset();
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mp.setDataSource(SD_PATH);
        mp.prepare();
        mp.start();

    } catch (IOException e) {
        Log.v(getString(R.string.app_name), e.getMessage());
    }
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    updatePlaylist();
    ImageButton play=(ImageButton)findViewById(R.id.imageButton);
    play.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mp.pause();
        }
    });
    ListView list=(ListView)findViewById(android.R.id.list);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            playSong(SD_PATH + songs.get(position));
        }
    });

   TextView textView=(TextView)findViewById(R.id.textView2);
    textView.setText(String.valueOf(no));
}
class Mp3filter implements FilenameFilter{

@Override
public boolean accept(File dir, String filename) {

    return (filename.endsWith(".mp3"));
}
}
public void updatePlaylist(){

 File home =new File(SD_PATH);
 if (home.listFiles(new Mp3filter()).length>0){
     for (File file:home.listFiles(new Mp3filter())){
         songs.add(file.getName());
        no++;
     }
     ArrayAdapter<String>songlist=new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,songs);

     setListAdapter(songlist);

 }
}

}

这是我遇到的错误

2406-2418/com.union.musiclist1 E/MediaPlayer: error (1, -2147483648)

我也尝试设置 onlistItemclick,但它不起作用

 @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    try{
        mp.reset();
        mp.setDataSource(SD_PATH +songs.get(position));
        mp.prepare();
        mp.start();
    } catch (IOException e) {

        Log.v(getString(R.string.app_name),e.getMessage());
    }
}

任何提示都会有所帮助

【问题讨论】:

    标签: android listview android-emulator mp3 android-mediaplayer


    【解决方案1】:

    在您的代码中添加 setAudioStream。

    MediaPlayer mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mediaPlayer.setDataSource(getApplicationContext(), songPath);
    mediaPlayer.prepare();
    mediaPlayer.start();
    

    你可以试试这个。 Link

    【讨论】:

    • 我已经在playsong方法中做到了,但它仍然没有播放歌曲
    • 在数据源中给出上下文。
    • 使用以下链接我在另一个活动中调用这首歌并播放这首歌
    猜你喜欢
    • 1970-01-01
    • 2012-07-17
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    相关资源
    最近更新 更多