是否有类似于res/drawable的文件夹来存放mp3或其他音频文件?如果有,它是什么,我该如何从应用程序访问它?
是否有类似于res/drawable的文件夹来存放mp3或其他音频文件?如果有,它是什么,我该如何从应用程序访问它?
将这样的 .mp3
或任何其他文件放置在 assets
文件夹中是最好的选择。
一旦存储了这些文件,它们就会成为您的安卓应用程序的一部分,可以轻松读取。这个教程讲得很清楚。
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
MediaPlayer player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
player.prepare();
player.start();
你也可以将文件存储在 raw
文件夹中,并通过指定路径直接读取它。示例如下:
int resID=getResources().getIdentifier(fname, "raw", getPackageName());
MediaPlayer mediaPlayer=MediaPlayer.create(this,resID);
以下是您可以简单遵循的步骤。
使用包含您要添加音频剪辑/媒体文件的项目打开Android Studio。
在资源文件夹中创建一个raw
文件夹。
通过将其简单复制并粘贴到raw
文件夹中,向raw
文件夹添加媒体文件。
这里我们添加了一个名为“ring.mp3”的媒体文件。现在打开所需活动的Java文件,在MainActivity中添加音频。
进一步添加此代码。
MediaPlayer ring = MediaPlayer.create(MainActivity.this, R.raw.ring);
ring.start();
现在运行应用程序,当应用程序启动时会播放音乐。
res/raw
文件夹中。AndroidStudio 可以识别这个 raw
文件夹(相比之下,它不会自动识别 res/assets
文件夹)。
mediaPlayer = MediaPlayer.create(ctx, R.raw.cat_meow);
mediaPlayer.start();
注意方便的使用 R.
语法。将它放入您的资产文件夹中,最好是在assets/raw/myfile.mp3下。您可以使用以下方法访问它:
String mp3File = "raw/music.mp3";
AssetManager assetMan = getAssets();
MediaPlayer media = new MediaPlayer();
FileInputStream mp3Stream = assetMan.openFd(mp3File).createInputStream();
media.setDataSource(mp3Stream.getFD());
media.prepare();
media.start();