2012-09-02 241 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文件夾。它不會壓縮文件。我沒有測試它