android声音到扬声器

时间:2012-09-02 09:39:46

标签: android audio volume speaker

在我的虚拟Android应用程序上,我尝试复制音频播放器的功能。我必须处理的文件是一些不太长的ogg文件:2-3秒。

问题是文件的音量太低。我想增加音量,但我不知道如何。在我的应用程序中,声音播放的音量相当于来自电话的音量。当我使用扬声器模式时,我想增加音量到语音通话的音量。

    AssetFileDescriptor afd;

    try {
        afd = getAssets().openFd(strPlayFileName);
        mPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());

        mPlayer.prepare();
        afd.close();
        mPlayer.start();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

这是播放我的ogg文件的代码。欢迎任何反馈。

4 个答案:

答案 0 :(得分:1)

MediaPleyer允许进行音量操作。您可以尝试使用setVolume()方法查看它是否提供了所需的结果。您可以获得有关此方法here的更多信息。

如果这不能提供所需的结果,我建议您使用一些免费的音频编辑器(如audacity)放大声源的声音输出。

答案 1 :(得分:0)

如果我正确理解了您的问题,您希望为媒体增加收益,即以超过100%的音量播放它们。一种方法是使用JB中的新功能。我自己没有玩过这个,但是肯定可以从解码器中获取一个缓冲区并将缓冲区中的值乘以你的增益,然后传递给它进行播放。您可以找到更多信息here

答案 2 :(得分:0)

@dole

  

我想增加音量,当我接听音频时的音量   使用扬声器模式。

您希望获得完整音量,这是解决方案

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC), 0);

这会将音量设置为最大音量。

您可以参考以下链接获取音频管理器工作here

答案 3 :(得分:0)

将媒体播放器用于非常短的音频不是一个好主意。相反,你会得到另一个选择。使用SoundPool播放此类文件。

  1. 我建议的原因是几乎所有的游戏都使用它来发挥效果。我们知道它有多简单。

  2. 您可以使用FX来播放媒体。

  3. 这是一个很好的例子。 Just use it

    我相信你会得到很好的结果。

    如果您仍想使用MediaPlayer尝试播放RAW文件夹中的媒体。它不会压缩文件。 我没有测试过它