用于在Android中存储audio文件的目录

我想要播放基于点击button的audio文件。 我已经定义了onClickListener()方法和布局文件。 当我将wav文件添加到res/目录时,出现以下内部错误:

无效的资源目录名temp.wav / hello / res line 1 Android AAPT问题

我的问题如下:
1.我需要什么目录来存储audio文件? 目前他们在res /文件夹中。
2.另外, mp.setDataSource("/res/temp.wav")调用媒体播放器的正确方法是什么?

Solutions Collecting From Web of "用于在Android中存储audio文件的目录"

不要把媒体文件里面的res/

把你的文件(temp.wav)放在一个名为/ sdcard / audio的文件夹中(如果你正在使用模拟器)。

并做到这一点:

 mp.setDataSource("/sdcard/audio/temp.wav"); 

audio文件可以被移动到应该在res文件夹中创build的名为raw的文件夹中。

它可以通过以下代码访问:

 MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.soundclip); mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mPlayer.start(); 

这是最简单的方法。 你可以尝试一下..

希望这将有助于:

生的/

任意文件以原始格式保存。 要使用原始InputStream打开这些资源,请使用资源ID(即R.raw.filename)调用Resources.openRawResource()。

但是,如果您需要访问原始文件名和文件层次结构,则可以考虑在assets /目录(而不是res / raw /)中保存一些资源。 assets /中的文件没有给定资源ID,所以只能使用AssetManager读取它们。

它来自开发指南 。

[编辑:但我不认为这是一个好主意,把你的音乐文件到res目录 – 这取决于这些文件的目的是什么?]

请注意,准备工作可能需要一些时间,因此可能会减慢用户与您应用的互动。 请参阅此处的开发笔记,特别是“asynchronous准备”一节。

如果文件大小小于1MB,也可以使用SoundPool。 这为您处理与UI线程的同步。 这是一个非常有用的文章 (Lars有一些伟大的文章!)。