私はバイナリファイルの一部として圧縮オーディオデータを含むDart Webアプリケーションにバイナリファイルをロードしています。データがhttpリクエスト経由でロードされると、ByteBufferとして送られます。これは、JS ArrayBufferの代わりにDartのものです。 AudioContext.decodeAudioData()メソッドはByteBufferを必要とし、ロードされたByteBufferの関連するセクションをどのように与えるかを調べようとしています。ロードされたByteBufferには、オーディオに関連しない追加のデータが含まれます。 JSのArrayBuffersはslice()メソッドをサポートしていますが、これはByteBufferクラスにはありません。範囲選択を許可するリストに変換した後、ByteBufferに戻る方法はありません。既存のByteBufferの領域から新しいDart ByteBuffer?
私はraw JSでハイブリッドソリューションを作成できると思っていますが、可能であればこれをDartに残したいと思います。アイデアが評価されました!
ありがとうございました!これに加えて、toList()はInt32List.fromList()で動作するにはrangeIterableで呼び出される必要があります。新しいInt32Listを作成するときにバッファプロパティにデータが移入されることはありません。元のデータを参照していることに慣れてきましたが、コピーされたデータを表すことは当然です。 –
本当に '.toList()'を追加する必要がありましたか?それは私がそれをローカルで試してみたときのように働いていたので(強いモードなしで、それは)。 – rinukkusu
私はそう信じています。それは私がそれなしでそれを試したとき私に型変換エラーを与えていた。 "タイプ 'SubListIterable'は 'List'タイプのサブタイプではありません" Intellijから起動したDartiumでテストしていますが、デフォルトではチェックモードが有効になっている可能性があります。 –