有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Android中播放从资产文件夹加载的WAV文件?

我正在尝试从assets文件夹在Android中播放.wav音频

问题是没有错误,但音频没有播放

这是我的密码

AssetFileDescriptor afd = null;
try {
   afd = getAssets().openFd("success.wav");
   player = new MediaPlayer();
                        player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
   player.setLooping(false);
   player.prepare();
   player.start();
} catch (IOException e) {
    e.printStackTrace();
}

共 (2) 个答案

  1. # 1 楼答案

    你的代码没问题,我检查过了,它正常工作了

    1. 请确保已放置\assets文件夹 正确地(\app\src\main\assets
    2. 检查您的设备音量水平
    3. 在PC media player中播放success.wav,并确保播放声音清晰

    注意: 使用设备音量控制:

    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    

    如果您的应用程序与媒体相关,请在活动或片段的onResume()中使用setVolumeControlStream API,并使用设备卷硬键增加/减少卷。这将应用程序设置为仅修改流\音乐音量/媒体音量,否则将修改铃声音量。 参考:https://developer.android.com/guide/topics/media-apps/volume-and-earphones

  2. # 2 楼答案

    你试过这个吗

     MediaPlayer mediaPlayer = null;
    
        public void playSound(final Context context, final String fileName) {
            mediaPlayer = new MediaPlayer();
            try {
                AssetFileDescriptor afd = context.getAssets().openFd(fileName);
                mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
                afd.close();
                mediaPlayer.prepare();
            } catch (final Exception e) {
                e.printStackTrace();
            }
            mediaPlayer.start();
        }
    }