我正在开发一个Android游戏应用程序.我设计了所有视图并实现了所有功能.现在在最后一个屏幕中我必须在android中播放声音.任何人都可以告诉我如何追求它吗?
yos*_*osh 30
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.AudioFile1);
mp.start();
Run Code Online (Sandbox Code Playgroud)
然后你从mp获得所有启动/停止/重置/暂停/释放方法.
我建议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);
}
Run Code Online (Sandbox Code Playgroud)
从Android Developer页面: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);
Run Code Online (Sandbox Code Playgroud)
mp.start();
要停止播放,请调用stop().如果您希望稍后重播媒体,则必须在再次调用start()之前重置()并准备()MediaPlayer对象.(create()第一次调用prepare().)
要暂停播放,请调用pause().使用start()从暂停的位置继续播放.
从文件或流播放您可以从文件系统或Web URL播放媒体文件:
使用新的Call setDataSource()创建一个MediaPlayer实例,其中包含一个String,其中包含要播放的文件的路径(本地文件系统或URL)首先在实例上执行prepare()然后start():
像这样
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(PATH_TO_FILE);
mp.prepare();
mp.start();
Run Code Online (Sandbox Code Playgroud)
通过使用媒体播放器,您可以实现这一点。
这是步骤::
1.- 在“调试”文件夹中创建一个名为“raw”的新文件夹。要在“调试”文件夹 > 新建 > 目录 > 上右击创建它,并将其命名为“原始”:
要添加文件,只需将 .wav/.mp3 文件拖到“raw”文件夹即可。
2.- 导入媒体播放器:
导入 android.media.MediaPlayer;
3.- 声明 MediaPlayer 全局变量:
public MediaPlayer mp1;
Run Code Online (Sandbox Code Playgroud)
4.- 在 onCreate 方法中,指定相应的声音:
mp1 = MediaPlayer.create(MainActivity.this, raw.my_sound_name);
Run Code Online (Sandbox Code Playgroud)
5.- 最后,您可以使用方法...
mp1.start() / mp1.stop() / mp1.pause()
| 归档时间: |
|
| 查看次数: |
56411 次 |
| 最近记录: |