Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android应用程序中实现声音_Android_Audio - Fatal编程技术网

在android应用程序中实现声音

在android应用程序中实现声音,android,audio,Android,Audio,我正在用android开发一个游戏应用程序。我设计了所有视图并实现了所有功能。现在在最后一个屏幕中,我必须在android中播放声音。有人能告诉我如何使用它吗?只需将声音文件放入/res/raw(创建文件夹后),然后使用MediaPlayer初始化、启动并停止播放声音。可以找到MediaPlayer文档 HTH, 斯利拉姆 然后您可以从mp获得所有的启动/停止/重置/暂停/释放方法 来自Android开发者页面: 也许是从一个原始资源开始玩 最常见的事情是 播放媒体(尤其是声音) 您自己的应用程

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

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

HTH,
斯利拉姆


然后您可以从mp获得所有的启动/停止/重置/暂停/释放方法

来自Android开发者页面:

也许是从一个原始资源开始玩 最常见的事情是 播放媒体(尤其是声音) 您自己的应用程序。做这件事是件好事 简单:

播放声音(或其他媒体) 资源)文件保存到res/raw文件夹中 在您的项目中,Eclipse 插件(或aapt)将找到它并生成 将其转换为可以 从R类引用创建一个 MediaPlayer的实例,引用 资源利用 MediaPlayer.create,然后调用 实例上的start():

mp.start()

要停止播放,请调用stop()。 如果你想稍后重播 介质,然后必须重置()和 准备()MediaPlayer对象 在再次调用start()之前。 (create()首先调用prepare() 时间。)

要暂停播放,请调用pause()。 从暂停的位置恢复播放 使用start()

从文件或流播放,您可以 从中播放媒体文件 文件系统或web URL:

创建MediaPlayer的实例 将新调用setDataSource()与 包含路径(本地)的字符串 文件系统或URL)中的文件 想先玩吗?然后准备 实例上的start():

像这样

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

通过使用媒体播放器,您可以实现这一点

步骤如下:

1.-在“调试”文件夹内创建一个名为“原始”的新文件夹。要在“调试”文件夹>新建>目录>上右键单击并将其命名为“原始”,请执行以下操作:

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

2.-导入媒体播放器:

导入android.media.MediaPlayer

3.-声明MediaPlayer全局变量:

4.-在onCreate方法中,指定相应的声音:

mp1 = MediaPlayer.create(MainActivity.this, raw.my_sound_name);
-最后,你可以使用


mp1.start()/mp1.stop()/mp1.pause()

我建议使用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();在“播放”按钮上单击??yosh???提前感谢TusharWell,点击按钮时需要mp.start()。您可以提前申报的所有其他内容。你可能不想真正检查:D只准备文件,像Sriram写的那样放入/res/raw,包括“导入android.media.MediaPlayer”;它应该可以工作,在我上面的代码中,AudioFile1是/raw中的文件名(可以是AudioFile1.wav或mp3或任何支持的文件,你只需不添加扩展名)如果您正在播放游戏的短声音片段,请记住使用soundpool。如果在我停止媒体播放器之前声音结束,请注意。他会自动停止吗?
public MediaPlayer mp1;
mp1 = MediaPlayer.create(MainActivity.this, raw.my_sound_name);
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);
  }