如何使用 MediaPlayer 播放存储在资产中找到的文件夹中的音乐

How to use MediaPlayer which plays music stored in a folder found in the asset

我正在从 android studio 创建一个 android 应用程序。

我的目的是有一个函数来根据字符串参数播放不同的歌曲。

 MediaPlayer mysound;
public void play(String song){
mysound = Mediaplayer.create(this, "../../../../asset/soundlib/" + song);
mysound.play();
}

我尝试了 R.assets.song。它只是行不通。

有没有办法把歌曲命名为C.mp3?它说它们不应该大写并且所有的参数基本上都是像C A F这样的和弦...

谢谢

尝试使用以下代码播放资产歌曲:

 fun playSound(context: Context, assetsFileName: String?) {
        try {
            val mediaPlayer = MediaPlayer()
            val descriptor: AssetFileDescriptor = context.getAssets().openFd(assetsFileName!!)
            mediaPlayer.setDataSource(
                descriptor.getFileDescriptor(),
                descriptor.getStartOffset(),
                descriptor.getLength()
            )
            descriptor.close()
            mediaPlayer.prepare()
            mediaPlayer.isLooping = false
            mediaPlayer.start()
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

谢谢

android java 使用

void test_mp(String file_name)
{
    MediaPlayer mediaPlayer = null;


            mediaPlayer = new MediaPlayer();
            try {
                AssetFileDescriptor afd = act.getAssets().openFd(file_name);
                mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
                afd.close();
                mediaPlayer.prepare();
            } catch (final Exception e) {
                e.printStackTrace();
            }
            mediaPlayer.start();
        }

所以对于你的情况,你可以这样称呼它 test_mp("SoundLib/A.mp3");