3

libgdx を使用したオーディオの録音と再生に成功した人がいるかどうか疑問に思っていました。私は現在0.9.8を使用していて、簡単なボイスチャットアプリを作ろうとしていじっています。

を使用してオーディオデバイスを作成します

int samples = 44100;
int seconds = 5;
boolean isMono = true;
short[] data = new short[samples*seconds];

AudioRecorder recorder = Gdx.audio.newAudioRecorder(samples, isMono);
AudioDevice player = Gdx.audio.newAudioDevice(samples, isMono);

ボタンを押すと、新しいスレッドを開始してデータを記録します。(これが新しいスレッドを開始するのが面倒であることは知っていますが、私はオーディオ録音で遊んでいるだけです)

new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Record: Start");
        recorder.read(data, 0, data.length);
        System.out.println("Record: End");
    }
}).start();

録音後、録音したデータを再生します

new Thread(new Runnable() {
@Override
public void run() {
    System.out.println("Play : Start");
    player.writeSamples(data, samples, data.length);
    System.out.println("Play : End");
}
}).start();

私のラップトップでは、録音と再生は正常に機能しているようです。データを記録でき、再生がうまくいきます。問題は Android で発生します。3 つのデバイス (Samsung S3、Samsung Galaxy Mini、Nexus 10) で試しました。すべての場合において、録音は完全に機能します。再生しようとすると問題が発生し、player.writeSamples でロックされ、何も再生されません。10分間放置しましたが、「Record:End」は出力されません。

誰かがオーディオ再生を機能させたことがありますか? 何か不足していますか?

4

1 に答える 1