我正在尝试从资产目录播放mp3文件,但是当我使用MediaPlayer启动它时,会播放完全不同的文件。这是代码:

String mp3File = "dir/a/music.mp3";  //the path here is file:///android_asset/dir/a/music.mp3;
AssetManager assetMan = getAssets();
MediaPlayer media = new MediaPlayer();
FileInputStream mp3Stream = assetMan.openFd(mp3File).createInputStream();
media.setDataSource(mp3Stream.getFD());
media.prepare();
media.start();


似乎没有播放mp3File,而是播放了位于资产目录中的许多其他文件。有任何想法吗?

最佳答案

使用这种方式它是非常有用的功能:)

    public void playBeep() {
    try {

        if (m.isPlaying()) {
            m.stop();
            m.release();
            m = new MediaPlayer();
        }
        AssetFileDescriptor descriptor = getAssets().openFd("mp3 name.mp3");
        m.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
        descriptor.close();

        m.prepare();
        m.setVolume(1f, 1f);
        m.setLooping(true);
        m.start();
    } catch (Exception e) {
    }
}

关于android - Android MediaPlayer在 Assets 目录中播放了错误的mp3文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7199610/

10-09 01:11