3

私のダミー 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

5 に答える 5

1

MediaPleyerはボリューム操作を可能にします。setVolume()メソッドを試して、目的の結果が得られるかどうかを確認できます。この方法の詳細については、こちらをご覧ください。

これで目的の結果が得られない場合は、audacityなどの無料のオーディオエディタを使用して、ソースのサウンド出力を増幅することをお勧めします。

于 2012-09-10T13:02:10.940 に答える
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;


     }
}

これを試して..

于 2012-09-15T09:12:09.773 に答える
0

@ドール

スピーカーモードを使用するときは、音量を音声通話の音量に上げたいと思います。

あなたはフルボリュームを得たい、ここに解決策があります

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

これにより、音量が最大音量に設定されます。

オーディオ マネージャーの動作については、次のリンクを参照してください

于 2012-09-14T10:27:54.540 に答える
0

非常に短いオーディオにメディア プレーヤーを使用することはお勧めできません。むしろ、そうするための別のオプションが得られます。SoundPoolこのようなファイルを再生するために使用します。

  1. 私が提案している理由は、ほとんどすべてのゲームがこれを使用してエフェクトを再生することです。そして、それがいかに簡単かを知っています。

  2. FX を使用してメディアを操作できます。

これが素晴らしい例です。 ただそれを使用してください。

きっと素晴らしい結果が得られると思います。

それでも使いたい場合は、フォルダMediaPlayerからメディアを再生してみてください。RAWファイルを圧縮しません。私はそれをテストしませんでした

于 2012-09-16T06:32:43.703 に答える
0

あなたの質問が正しく理解できれば、メディアにゲインを追加したい、つまり 100% 以上の音量で再生したいということになります。そのための 1 つの方法は、JB の新しい機能を使用することです。私はこれで遊んだことはありませんが、デコーダからバッファを取得し、バッファ内の値にゲインを掛けてから、それを渡して再生することは確かに可能です。詳細については、こちらをご覧ください。

于 2012-09-11T12:18:42.070 に答える