我正在開發一個測試應用程序,除了播放音樂外別無其他。這個應用程序背後的想法是,通常你有一個音樂播放器需要很長時間才能加載,並有所有那些額外的小工具和小玩意兒,沒有人,或者至少不是你用的。這個應用程序只播放音樂,時期。它幾乎立即加載。無法從本地文件系統播放音樂,但可以播放SD卡
但我有些有趣。我需要找到一種方法讓用戶從文件系統中選擇一首歌曲,但我還沒有完成這項工作,所以我正在使用固定的歌曲URI來播放它。當我將這首歌曲放在本地文件系統上(即/storage/emulated/0/Music/SongName.mp3)時,按下播放按鈕後該應用程序將崩潰。但是,當我把歌曲放在SD卡上(即/storage/extSdCard/Music/SongName.mp3)時,它工作正常。
嗯,我得到它的工作,但我不知道如何或爲什麼它的作品。通常我會感到驚訝,並且不會再觸摸那段代碼,以便它繼續工作,但是這次我正在學習Android編程,並且想知道它爲什麼起作用。
這是從SD卡播放(作品)的代碼:
p = new MediaPlayer();
p.setAudioStreamType(AudioManager.STREAM_MUSIC);
p.setDataSource(getApplicationContext(), Uri.fromFile(new File("/storage/extSdCard/Tests/Take Back The Night.mp3")));
p.prepare();
p.start();
這是從本地FS打碼(不工作):
p = new MediaPlayer();
p.setAudioStreamType(AudioManager.STREAM_MUSIC);
p.setDataSource(getApplicationContext(), Uri.fromFile(new File("/storage/emulated/0/Music/heybrother.mp3")));
p.prepare();
p.start();
由於你可以看到,它幾乎是一樣的,所以我得出結論,URI中可能有錯誤。但我看不到任何拼寫錯誤,我多次重複輸入。 URI是否因此而格格不入?
p.setDataSource(「/ mnt/sdcard/yourdirectory/youraudiofile.mp3」); –
不起作用:U – latias1290