現在、AudioTrackを使用して録音済みの音楽を再生しています。これはトラックデータをオーディオバッファに書き込むことを含む。オーディオデータストリームを使用してリアルタイムで再生されるオーディオを表す波形を画面上に描画するにはどうすればよいでしょうか?私はどのように起動するのか分からない前にアンドロイド上で高度なグラフィックを使用していません。 OpenGLを使用する必要がありますか、またはビューを実装できますか?また、どのようにデータを描画に使用するのに便利なものに変換するのですか?ByteStreamからAndroid AudioTrackを視覚化する
4
A
答えて
3
あなたの最初のステップは、setPositionNotificationPeriod(periodInFrames)
に電話することです。これは、アプリケーションがonPeriodicNotification
コールを受信する頻度を決定します。したがって、オシロスコープ型のビジュアライゼーションを行っていて、任意の瞬間に画面に50ミリ秒分のオーディオデータを表示したい場合は、periodInFrames
の値を2205に設定します(WAVファイルがモノラル、サンプルあたり16ビット44,100Hzサンプルレート)。
通知イベントの中で、現在AudioTrackオブジェクトの再生がどこにあるかを判断し、元のファイルまたは配列から対応するスライスを取得できます。その後、通常の2Dグラフィックス・メソッドを使用して、このデータスライスをビューに描画します(ここではOpenGLは必要ありません)。 This answerには、オーディオデータのスライスを描画するためのC#サンプルがあります。これはjavaに簡単に変換できます。
だからあなたのコードは、一種の本のように見えることになります:
audioTrack.setPositionNotificationPeriod(2205);
audioTrack.setPlaybackPositionUpdateListener(this);
...
public void onPeriodicNotification(AudioTrack track) {
int pos = track.getNotificationMarkerPosition();
short[] slice = Array.copy(_data, pos, _sliceSize) // pseudo-code
// render the slice to the view
}
2
、その点については、私はあなたが波形アレイまたは周波数配列の生成を処理android.media.audiofx.Visualizer
クラスを使用することを示唆しています。だからあなたが気を配らなければならないのは、グラフィックスの描画だけです。
あなたはAPI 9.
関連する問題
- 1. ポイントクラウドを視覚化する
- 2. ハイブデータベースからウェブサイトページにデータを視覚化
- 3. 視覚化データ
- 4. 視覚化データ
- 5. Androidでのリアルタイムデータの視覚化
- 6. タイタングラフを視覚化
- 7. プロジェクトタンゴポイントクラウドの視覚化
- 8. Google視覚化コラムドック
- 9. データ視覚化フレームワーク
- 10. Cloudera視覚化ツール
- 11. 視覚化データR
- 12. gRPCとプロトコルバッファを視覚化
- 13. Antのターゲットグラフを視覚化
- 14. netcdfファイルからマップを視覚化するには?
- 15. Hadoopからログファイルを視覚化する方法は?
- 16. Hibernate HQL(oracle)からSQLを視覚化するには?
- 17. ブラウザからオーディオを録音し、リアルタイムで視覚化する
- 18. Kibana視覚化フィールドをフィルタリングする
- 19. Googleカレンダーでデータを視覚化する
- 20. 再帰を視覚化する方法
- 21. ヒープダンプを視覚化するには?
- 22. tf.contrib.learn.LinearClassifierウェイトを視覚化する
- 23. Sprite-Kit:SKFieldNodeを視覚化する方法
- 24. gccエラーメッセージを視覚化する
- 25. Tensorboardでデータセットを視覚化する
- 26. fft-signal__Waterplotを視覚化する
- 27. XMLファイルを視覚化する方法
- 28. PCMデータを視覚化する方法
- 29. マルチスレッドプロセスを視覚化するには?
- 30. ネットワーク接続を視覚化するツール
感謝のリリース以降にこのクラスを使用することができ、これは私が開始され、右方向への移動を取得する必要があります。私は、これが複数のストリームでどのように機能するか心配する必要があります。 – DeliveryNinja
ええ、それはあなたの難易度をかなり大幅に向上させます。私はあなた自身が1つのストリームにすべてをプレミックスすることをお勧めしますが、それはあなたがやっていることに対しては不可能かもしれません。 – MusiGenesis
私は実際に視覚化された4つのオーディオトラックを実行することを計画しており、レイテンシーはオーディオを記録する際に大きな要因となります。これがどうやって始まるのかは誰が知っていますか? NDK 2.3に移行する必要があるかもしれません。 – DeliveryNinja