在Android应用程序中实现声音

时间:2011-02-01 11:17:38

标签: android audio

我正在开发一个Android游戏应用程序。我设计了所有视图并实现了所有功能。现在在最后一个屏幕中我必须在android中播放声音。任何人都可以告诉我如何追求它吗?

5 个答案:

答案 0 :(得分:28)

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.AudioFile1);
mp.start();

然后你从mp获得所有启动/停止/重置/暂停/释放方法。

答案 1 :(得分:10)

只需将声音文件放在/res/raw中(创建文件夹后),然后使用MediaPlayer初始化,启动然后停止播放声音。可以找到MediaPlayer文档here

HTH,
斯利拉姆。

答案 2 :(得分:8)

我建议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);
  }

答案 3 :(得分:6)

从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()。   如果你想稍后重播   媒体,然后你必须重置()和   prepare()MediaPlayer对象   再次调用start()之前。   (create()调用prepare()第一个   时间。)

     

要暂停播放,请调用暂停()。   从暂停的位置继续播放   用start()。

     

从文件或流播放您可以   播放媒体文件   文件系统或网址:

     

创建MediaPlayer的实例   使用新的调用setDataSource()   包含路径的字符串(本地   文件系统或URL)到你的文件   想玩第一次准备()然后   实例上的start():

喜欢这个

MediaPlayer mp = new MediaPlayer();
mp.setDataSource(PATH_TO_FILE);
mp.prepare();
mp.start();

答案 4 :(得分:4)

通过使用Media Player,您可以实现此目的。

这是步骤::

1.-在“debug”文件夹中创建一个名为“raw”的新文件夹。要在“debug”文件夹>上正确创建它新>目录>而在名称上它是“原始的”:

要添加文件,只需将.wav / .mp3文件拖到“raw”文件夹即可。

2.-导入媒体播放器:

import 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()