We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
javascriptで動的に生成した音声をティラノスクリプトで再生させたいです。
playse(playbgm)タグのstorageにdata-urlやjavascriptのURL.createObjectURL(blob)で生成したオブジェクトurlを渡せるようにしたいです。
URL.createObjectURL(blob)
ティラノスクリプトでは音楽を再生する方法として、playseやplaybgmタグが用意されています。 現在のコードを見ると、storageに音声ファイルのパス、もしくは、音声ファイルのhttpアドレスを指定できます。 ですが、バイナリデータをstorageに指定しても再生できません。
現在の実装は以下のようになっています。
playseのstorageに指定された文字列は、相対パスで指定されたものか、HTTPであるか判定されます。 HTTPであるかどうかは$.isHTTP()関数で判定しているようです。isHTTP関数では data-url形式かどうかをisBase64の関数で判定しています。
isBase64
https://github.com/ShikemokuMK/tyranoscript/blob/c763ee2913307fd90f09461c98c2cc1efd2e481b/tyrano/libs.js#L15C1-L25C7
$.isHTTP = function (str) { if ($.isBase64(str)) { return true; } if (str.substring(0, 4) === "http") { return true; } else { return false; } };
base64の判定は以下のような判定になっています。
https://github.com/ShikemokuMK/tyranoscript/blob/c763ee2913307fd90f09461c98c2cc1efd2e481b/tyrano/libs.js#L1302C3-L1310C7
$.isBase64 = function (str) { if (!str) return false; if (str.substr(0, 10) == "data:image") { return true; } else { return false; } };
現在のこの実装では、data:imageのデータしか受け入れていないので、playbgmのタグでstorageにdata:audioで始まるbase64のバイナリデータを渡してもエラーになります。
data:image
data:audio
以下のように修正すると動的に音声を再生できると思います。
$.isBase64 = function (str) { if (!str || typeof str !== 'string') return false; return str.startsWith("data:image") || str.startsWith("data:audio") || str.startsWith("data:video") }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
要望
javascriptで動的に生成した音声をティラノスクリプトで再生させたいです。
playse(playbgm)タグのstorageにdata-urlやjavascriptの
URL.createObjectURL(blob)
で生成したオブジェクトurlを渡せるようにしたいです。現状
ティラノスクリプトでは音楽を再生する方法として、playseやplaybgmタグが用意されています。
現在のコードを見ると、storageに音声ファイルのパス、もしくは、音声ファイルのhttpアドレスを指定できます。
ですが、バイナリデータをstorageに指定しても再生できません。
現在の実装は以下のようになっています。
playseのstorageに指定された文字列は、相対パスで指定されたものか、HTTPであるか判定されます。
HTTPであるかどうかは$.isHTTP()関数で判定しているようです。isHTTP関数では data-url形式かどうかを
isBase64
の関数で判定しています。https://github.com/ShikemokuMK/tyranoscript/blob/c763ee2913307fd90f09461c98c2cc1efd2e481b/tyrano/libs.js#L15C1-L25C7
base64の判定は以下のような判定になっています。
https://github.com/ShikemokuMK/tyranoscript/blob/c763ee2913307fd90f09461c98c2cc1efd2e481b/tyrano/libs.js#L1302C3-L1310C7
現在のこの実装では、
data:image
のデータしか受け入れていないので、playbgmのタグでstorageにdata:audio
で始まるbase64のバイナリデータを渡してもエラーになります。修正案
以下のように修正すると動的に音声を再生できると思います。
The text was updated successfully, but these errors were encountered: