【问题标题】:Implement sounds in an android application在 android 应用程序中实现声音
【发布时间】:2011-02-01 11:17:38
【问题描述】:

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

【问题讨论】:

    标签: android audio


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.AudioFile1);
      mp.start();
      

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

      【讨论】:

      • 我应该添加 MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.AudioFile1); mp.start();在paly按钮点击??哟西???在此先感谢 Tushar
      • 嗯,mp.start() 是您在单击按钮时所需要的。您可以提前声明的所有其他内容。你可能想检查developer.android.com/reference/android/media/MediaPlayer.html
      • 不是真的 :D 只是准备文件,像 Sriram 写的那样放入 /res/raw,包括“import android.media.MediaPlayer;”它应该可以工作,在我上面的代码中 AudioFile1 是 /raw 中的文件名(可以是 AudioFile1.wav 或 mp3 或任何受支持的东西,你只是不添加扩展名)
      • 如果您正在为游戏播放短声音片段,请记住使用 soundpool
      【解决方案3】:

      通过使用媒体播放器,您可以做到这一点。

      步骤如下::

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

      【讨论】:

      • 如果在我停止媒体播放器之前声音结束了怎么办。他会自动停止吗?
      【解决方案4】:

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

      HTH,
      斯里拉姆。

      【讨论】:

        【解决方案5】:

        来自 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();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-26
          • 1970-01-01
          相关资源
          最近更新 更多