public class Player extends java.lang.Object implements AudioFrameProvider
File file = new File("input.wav");
Player player = Player.builder(wavFile)
.mixer(AudioSystem.getMixerInfo()[mixerIndex])
.daemon()
.build();
player.addAudioFrameListener((frame, position) -> {
final double rms = Arrays.stream(frame).map(x -> x * x).average().orElse(0.0);
final double logRms = 20.0 * Math.log10(rms);
final double posInSec = position / player.getSampleRate();
System.out.printf("Position %d (%.3f sec), RMS %f dB%n", position, posInSec, logRms);
});
player.start();
| 修飾子とタイプ | クラスと説明 |
|---|---|
static class |
Player.Builder |
INITIAL_DELAY, TIME_UNIT, UPDATE_DELAY| 修飾子とタイプ | メソッドと説明 |
|---|---|
void |
addAudioFrameListener(AudioFrameListener listener)
リスナーを追加します.
|
static Player.Builder |
builder(java.io.File wavFile) |
javax.sound.sampled.AudioFormat |
getAudioFormat()
録音または再生するオーディオのフォーマットを返します。
|
int |
getFrameSize()
フレームのサイズ(サンプル数)を返します.
|
int |
getIntervalSize()
フレームの通知間隔(サンプル数)を返します。
|
static void |
main(java.lang.String[] args)
このクラスのメイン・エントリ・ポイントです.
|
void |
removeListener(AudioFrameListener listener)
リスナーの削除を試みます.
|
void |
start(long initialDelay,
long updateDelay,
java.util.concurrent.TimeUnit timeUnit)
録音または再生を開始します.
|
void |
stop()
録音または再生を停止します.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetNyquist, getSampleRate, startpublic static final Player.Builder builder(java.io.File wavFile)
public final javax.sound.sampled.AudioFormat getAudioFormat()
AudioFrameProvidergetAudioFormat インタフェース内 AudioFrameProviderpublic final int getFrameSize()
AudioFrameProvidergetFrameSize インタフェース内 AudioFrameProviderpublic int getIntervalSize()
AudioFrameProvidergetIntervalSize インタフェース内 AudioFrameProviderpublic void addAudioFrameListener(AudioFrameListener listener)
AudioFrameProvideraddAudioFrameListener インタフェース内 AudioFrameProviderlistener - オーディオフレームの変更をリスニングするリスナーpublic void removeListener(AudioFrameListener listener)
AudioFrameProviderremoveListener インタフェース内 AudioFrameProviderlistener - 削除するリスナーpublic void start(long initialDelay,
long updateDelay,
java.util.concurrent.TimeUnit timeUnit)
AudioFrameProviderstart インタフェース内 AudioFrameProviderinitialDelay - 開始するまでの待ち時間updateDelay - 処理の実行間隔timeUnit - initialDelayとupdeDelayの単位public void stop()
AudioFrameProviderstop インタフェース内 AudioFrameProviderpublic static final void main(java.lang.String[] args)
throws java.io.IOException,
javax.sound.sampled.LineUnavailableException,
javax.sound.sampled.UnsupportedAudioFileException,
org.apache.commons.cli.ParseException
-h を参照してください.args - コマンドライン引数java.io.IOException - 入出力例外が発生した場合javax.sound.sampled.UnsupportedAudioFileException - WAVファイルのフォーマットが不正な場合などjavax.sound.sampled.LineUnavailableException - 指定されたデバイスで再生用ラインを開けない場合org.apache.commons.cli.ParseException - コマンドラインオプションのパージングに失敗した場合