2012-09-02 371 views
3

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

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

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文件的代码。欢迎任何反馈。

+0

也许这将有助于:http://stackoverflow.com/questions/4593552/android-get-set-media-volumenot-ringone-volume – pawelzieba

+0

为什么不调整你的ogg文件有更多的音量? –

回答

1

MediaPleyer允许进行音量调节。您可以尝试如果setVolume()方法,看看它是否提供了预期的结果。您可以从这个方法获得更多信息here

如果这不能给你想要的结果,我建议你使用一些免费的音频编辑器,如大胆放大源的声音输出。

0

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

0

@dole

我会喜欢,以增加体积,从语音通话的一个,当我 使用扬声器模式。

你想获得足量,这里是解决方案

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

这将设置音量的最大音量。

你可以参考以下链接音频管理工作here

1
private AudioManager audio; 

audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 


@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_VOLUME_UP: 
      audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, 
        AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); 
      return true; 
     case KeyEvent.KEYCODE_VOLUME_DOWN: 
      audio.adjustStreamVolume(AudioManager.STREAM_MUSIC, 
        AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); 
      return true; 
     default: 
      return false; 


    } 
} 

试试这个..

0

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

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

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

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

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

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