我是 Java/Android 编程的新手,所以请耐心等待。
我尝试播放位于资产文件夹下的 mp3。我知道 /res/raw/ 文件夹还有另一种方法,但使用 assets-folder 因为稍后我将尝试通过字符串访问该文件。
此代码可用于播放 mp3 文件:
try
{
MediaPlayer mp = new MediaPlayer();
FileDescriptor sfd = getAssets().openFd("song.mp3").getFileDescriptor();
mp.setDataSource(sfd);
mp.prepare();
mp.start();
}
catch(Exception e) {}
现在的问题:在同一个资产文件夹中存储了另一个 mp3 文件。虽然我指定了 mp3 的名称来使用它,但要使用字母表中第一个的名称。例如,另一个文件名为“music.mp3”,它播放这个文件。将其重命名为“worldmusic.mp3”,它将播放“song.mp3”。将“worldmusic.mp3”重命名为“music.mp3”,它将再次使用此 mp3。另一项测试:将“song.mp3”重命名为其他名称,以便应用程序可以找到上面代码指定的内容,这将导致不播放歌曲。所以这意味着歌曲名必须存在,尽管它在字母表中将任意歌曲放在首位。
我正在使用 Eclipse 的 AVD 模拟器进行测试。但我认为在真实设备上的行为是相同的。
有人知道这个问题吗?