web-dev-qa-db-ja.com

あらゆる音楽ファイルから波形を生成するiOS

音楽に合わせて音波を描く方法を探しています。

このような波が欲しい

enter image description here

ここでは、音楽からの波の表示についてのいくつかの議論です

  1. IOSのWaveForm
  2. iphoneで波形をレンダリングする
  3. iPhoneでのオーディオ波形の視覚化

Githubのサンプルリンク

しかし、このタイプの波については何もわかりませんが、この画像のような波を描くことは可能ですか?

25
Vishal Khatri

免責事項:これの多くは試行錯誤によって発見されました。ここにいくつかの深刻な誤った仮定があるかもしれません:

AudioUnitsフレームワークを使用する必要があります。再生を初期化するときに、AURenderCallbackStructを作成できます。この構造体では、必要な情報を含むいくつかの引数を提供する再生コールバック関数を指定できます。

コールバック関数には、次のようなシグネチャがあります。

static OSStatus recordingCallback (void *inRefCon,
                                   AudioUnitRenderActionFlags *ioActionFlags,
                                   const AudioTimeStamp *inTimeStamp,
                                   UInt32 inBusNumber,
                                   UInt32 inNumberFrames,
                                   AudioBufferList *ioData) 

ここには、各周波数ビンのオーディオバッファーの振幅を取得したり、周波数ビンのDB値を計算したりするために使用できるオーディオデータの配列があります。

そのグラフが何を示しているかわかりませんが、サンプルビンのそれぞれの振幅を滑らかに表示したように見えます。

Audio Unitは単純ではありませんが、グリップがつかめるまでしばらく遊んでみる価値があります。

ここに私のコールバック関数のスケルトンがありますので、あなたは私が何を意味するのかについてより多くの理解を持っています:

編集:デッドリンクを削除しました、私はこのコードを失いました

4
JConway

私も過去3か月間真剣に取り組んできましたが、解決策は見つかりませんでした。とりあえず、曲の種類に応じた静止画像(静止データ曲)を使いました。画像をUIScrollViewに追加し、オーディオの現在の位置に基づいてcontentOffsetを変更しました。

3
Tendulkar