Mobile playback

This commit is contained in:
2025-12-13 08:42:15 +01:00
parent 9ce74da4ec
commit b6ccd7747b

View File

@@ -282,23 +282,32 @@ class YTMND:
fn.write(" }\n")
fn.write(" \n")
fn.write(" if (context.state === 'suspended') {\n")
fn.write(" context.resume();\n")
fn.write(" try {\n")
fn.write(" context.resume();\n")
fn.write(" } catch(e) {\n")
fn.write(" console.error('Resume error:', e);\n")
fn.write(" }\n")
fn.write(" }\n")
fn.write(" \n")
fn.write(" loadAudioWithXHR(\n")
fn.write(" function(arrayBuffer) {\n")
fn.write(" context.decodeAudioData(\n")
fn.write(" arrayBuffer,\n")
fn.write(" function(buffer) {\n")
fn.write(" audioBuffer = buffer;\n")
fn.write(" isPlaying = true;\n")
fn.write(" loopAudio();\n")
fn.write(" },\n")
fn.write(" function(error) {\n")
fn.write(" console.error('Decode error:', error);\n")
fn.write(" fallbackToHTMLAudio();\n")
fn.write(" }\n")
fn.write(" );\n")
fn.write(" var decodeSuccess = function(buffer) {\n")
fn.write(" audioBuffer = buffer;\n")
fn.write(" isPlaying = true;\n")
fn.write(" setTimeout(loopAudio, 0);\n")
fn.write(" };\n")
fn.write(" var decodeError = function(error) {\n")
fn.write(" console.error('Decode error:', error);\n")
fn.write(" fallbackToHTMLAudio();\n")
fn.write(" };\n")
fn.write(" try {\n")
fn.write(
" context.decodeAudioData(arrayBuffer, decodeSuccess, decodeError);\n"
)
fn.write(" } catch(e) {\n")
fn.write(" console.error('decodeAudioData exception:', e);\n")
fn.write(" fallbackToHTMLAudio();\n")
fn.write(" }\n")
fn.write(" },\n")
fn.write(" function(error) {\n")
fn.write(" console.error('Load error:', error);\n")
@@ -330,7 +339,12 @@ class YTMND:
fn.write(" }\n")
fn.write(" \n")
fn.write(" if (hasWebAudio()) {\n")
fn.write(" playWebAudio();\n")
fn.write(" try {\n")
fn.write(" playWebAudio();\n")
fn.write(" } catch(e) {\n")
fn.write(" console.error('Web Audio failed:', e);\n")
fn.write(" fallbackToHTMLAudio();\n")
fn.write(" }\n")
fn.write(" } else {\n")
fn.write(" fallbackToHTMLAudio();\n")
fn.write(" }\n")
@@ -338,8 +352,11 @@ class YTMND:
fn.write(" \n")
fn.write(" var overlay = document.getElementById('unmute-overlay');\n")
fn.write(" if (overlay) {\n")
fn.write(" overlay.addEventListener('click', startAudio);\n")
fn.write(" overlay.addEventListener('touchstart', function(e) {\n")
fn.write(" overlay.addEventListener('click', function(e) {\n")
fn.write(" e.preventDefault();\n")
fn.write(" startAudio();\n")
fn.write(" });\n")
fn.write(" overlay.addEventListener('touchend', function(e) {\n")
fn.write(" e.preventDefault();\n")
fn.write(" startAudio();\n")
fn.write(" });\n")