0

シークバーで曲を再生するアプリを作っています。raw フォルダーから再生すると機能しますが、sdcard から曲を再生すると、null ポインター例外が表示されます。

private MediaPlayer mediaPlayer;
mediaPlayer = MediaPlayer.create(this, R.raw.t1); // it works

//  switch to sdcard
mediaPlayer.setDataSource("/sdcard/t1.mp3"); // null pointer exception.

何が問題なのかわからない。私を助けてください。

4

1 に答える 1

3

setDataSource() 指定したパスが正確であることを確認する必要があります。「/sdcard/」への参照をハードコーディングする代わりに、これを行う最善の方法は、android.os.Environment.getExternalStorageDirectory()

これを試してください、私はそれがあなたを助けると思います

MediaPlayer mediaPlayer = new MediaPlayer();
File path = android.os.Environment.getExternalStorageDirectory();
mediaPlayer.setDataSource(path + "/t1.mp3");

これがお役に立てば幸いです

于 2011-05-16T14:54:24.423 に答える