argentum384 / flmml-on-html5

Porting of FlMML to HTML5
BSD 3-Clause "New" or "Revised" License
29 stars 8 forks source link

再生またはオーディオファイル出力が停止してしまうことがある #57

Closed argentum384 closed 1 year ago

argentum384 commented 1 year ago

の調査をしたところオーディオファイルに限らなさそうなので別に起票

原因

前提として FlMML (Flash版も) は出力音声データを保持する2つの表裏バッファを持ち、表のバッファの再生中、裏のバッファに表の後に続く音声を先んじて書き込み、表の再生が終わったら今度は裏を再生して表に書き込んで…… というように表裏の役割を切り替えながら再生と音声書き出しを行っている。

このバッファの裏表を切り替える時点で現在の面のバッファへの書き込み完了直後の状態だと、最終的には然るべき分岐に入れず後続の処理が止まってしまう様子。

レンダリングが重いMMLで起こりやすいが、ブラウザ/MML/その他端末環境などによってたまたま起こり得る事象とみられ、特定の状況/環境でしか再現できなかったのはそのためと思われる。
また #56 はオーディオファイル出力だったが通常の再生でも発生する可能性がある。

対処

条件分岐の修正で対処できそうなので対応予定