iPhone用の波形ビジュアライザーを作成しようとしていますが、ExtAudioFileReadで興味深い問題が発生しています。ExtAudioFileSeekに続いてExtAudioFileReadが多くのシーケンシャル0サンプルを返す(不可能)
私はVBR MP3ファイルから読んでいます。クライアントフォーマットは44.1kHzのLPCM、モノラルです。
私は、私が視覚化したい位置に移動し、1024フレームで読み込みます。私が見ているのは、時間の70%または80%で、最初の512フレームほどはゼロに戻ります。読み取りは、要求されたすべてのフレームを正常に読み取ったことを報告しています。
さらに、私は正しい位置を求めていることを確認しました。読み込み結果をオーディオキューに入れると、ファイル内の正しい位置にあることが明らかです。
だから何ですか?なぜこれが当てはまるのだろうか?私はこの問題に関連する文書で何も見つけることができません。
私はこのようなバグについて、他のどこかで非常によく似た問題の説明を読みました。問題は、返されたフレームが次のパケットの先頭からであって、シークが進むべき位置からではないということでした。その解決方法は、パケットの先頭を見つけてその途中を探し、その先頭に移動し、所望の位置に到達するのに十分なデータをスキップすることでした。 –
mp3ファイルの望ましいシーク時間(秒)が与えられたら、求めるフレーム番号をどのように計算して求めるのですか? – kevlar