WWWで取得したファイルからサンプルデータを取得したい

前提

趣味でシーケンサー風味のアプリを作っています。
wavetoneのようにストレージの音楽ファイルを、スペクトラム表示させたいです。
サンプルデータの取得方法を探しています。

ファイルをWWW.GetAudioClipで読み込むことはできました。
しかし、AudioClip.GetDataで、LoadTypeがDecompress on Loadではないとエラーが出ました。

GetDataである必要はないですが、どんな方法がいいかわかりません。

  • byte[]→サンプルデータ(float[])

各形式の仕組みを理解していないので、書きようがない。
unityでffmpegをandroidで利用できるらしいのでwavに変換する?

  • GetDataできるようにAudioClipを何かする?

何かとは

  • GetSpectrumDataするたびファイルと時間を記録

曲全体を記録するたび、おそらく結果が変わる。
また、耳コピ用なので不向き?

どうすればサンプルデータを取得できますか?

実現したいこと

発生している問題・エラーメッセージ

AudioClip.GetDataは、LoadTypeがDecompress on Loadでなければ0として出力されてしまう。
WWW.GetAudioClipしたClipをGetDataしたいが、その方法があるかわからない。

該当のソースコード

AudioClip audioClip = www.GetAudioClip(false, true);

試したこと

  • GetAudioClip→AudioClip.GetDataでの取得。

LoadTypeでエラー。

  • AudioSource(及びAudioListener).GetSpectrumData

取得はできるが、曲全体の音を取得したいのでほぼ没。。。

補足情報(FW/ツールのバージョンなど)

Unity 2021.1.16f1 Personal
主にAndroid、Editorで使用

コメントを投稿

0 コメント