【发布时间】:2011-02-01 11:17:38
【问题描述】:
我正在开发一个安卓游戏应用程序。我设计了所有视图并实现了所有功能。现在在最后一个屏幕中,我必须在 android 中播放声音。谁能告诉我如何追求它?
【问题讨论】:
我正在开发一个安卓游戏应用程序。我设计了所有视图并实现了所有功能。现在在最后一个屏幕中,我必须在 android 中播放声音。谁能告诉我如何追求它?
【问题讨论】:
我建议 SoundPool 在 android 中无缝播放,因为 mediaPlayer 首先将整个声音数据加载到内存中而不是播放,所以当我们频繁切换声音时会产生一些延迟。
SoundPool 是小尺寸声音文件的更好选择,使用 .ogg 媒体文件可产生最佳效果。
SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
soundID = soundPool.load(this, R.raw.sound, 1);
if (loaded) {
soundPool.play(soundID, volume, volume, 1, 0, 1f);
}
【讨论】:
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.AudioFile1);
mp.start();
然后你会从 mp 中获得所有的启动/停止/重置/暂停/释放方法。
【讨论】:
通过使用媒体播放器,您可以做到这一点。
步骤如下::
1.- 在“debug”文件夹中创建一个名为“raw”的新文件夹。要在“debug”文件夹>新建>目录>上创建它,并将其命名为“raw”:
要添加文件,只需将 .wav/.mp3 文件拖到“raw”文件夹即可。
2.- 导入媒体播放器:
导入android.media.MediaPlayer;
3.- 声明 MediaPlayer 全局变量:
public MediaPlayer mp1;
4.- 在 onCreate 方法中,分配相应的声音:
mp1 = MediaPlayer.create(MainActivity.this, raw.my_sound_name);
5.- 最后,您可以使用方法...
mp1.start() / mp1.stop() / mp1.pause()
【讨论】:
只需将声音文件放在/res/raw(创建文件夹后),然后使用MediaPlayer 初始化,开始然后停止播放声音。 MediaPlayer 文档可以在here 找到。
HTH,
斯里拉姆。
【讨论】:
来自 Android 开发者页面:http://developer.android.com/guide/topics/media/index.html
也许从原始资源播放 最常见的事情是 播放媒体(特别是声音) 您自己的应用程序。这样做是 简单:
把声音(或其他媒体 资源)文件到 res/raw 文件夹 您的项目,其中 Eclipse 插件(或 aapt)会找到它并制作 它变成一种资源,可以 从您的 R 类引用创建一个 MediaPlayer 的实例,引用 该资源使用 MediaPlayer.create,然后调用 实例上的 start():
MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);
mp.start();
要停止播放,请调用 stop()。 如果您想稍后重播 媒体,那么您必须 reset() 和 准备()媒体播放器对象 在再次调用 start() 之前。 (create() 首先调用 prepare() 时间。)
要暂停播放,请调用 pause()。 从您暂停的地方继续播放 使用 start()。
从文件或流播放您可以 播放媒体文件 文件系统或网址:
创建一个 MediaPlayer 的实例 使用带有新的调用 setDataSource() 包含路径的字符串(本地 文件系统或 URL)到您的文件 想玩 先prepare() 然后 实例上的 start():
这样
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(PATH_TO_FILE);
mp.prepare();
mp.start();
【讨论】: