我正在开发一个测试应用程序,除了播放音乐外别无其他。这个应用程序背后的想法是,通常你有一个音乐播放器需要很长时间才能加载,并有所有那些额外的小工具和小玩意儿,没有人,或者至少不是你用的。这个应用程序只播放音乐,时期。它几乎立即加载。无法从本地文件系统播放音乐,但可以播放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