Music bug - what's wrong?

Bluevoss
02 May 2020, 13:25

I'm trying to use the following code to play music:

    ogg = new Audio();
    ogg.src = "music_fight.mp3";
    ogg.loop=true;
    ogg.load();
    ogg.play();
    set ("ogg",ogg);

The strange thing is - it works in my test program. I've put in various fake sections and can change the music from file to file. But when I put it into my large game, nothing.

I originally put it in as a function but it didn't work. I eventually just put it at the very top of all my javascripts, and still nothing. This is driving me crazy. What sort of thing might disable this in a specific squiffy file?


Bluevoss
02 May 2020, 14:17

Further investigation shows that it seems that you need to click through a section to make the music work. So, this works...

[[start]]:

[[main]]

[[main]]:
    ogg = new Audio();
    ogg.src = "music_fight.mp3";
    ogg.loop=true;
    ogg.load();
    ogg.play();
    set ("ogg",ogg);
    
[[main]]

[[main]]:

...yet this does not.

[[start]]:

    ogg = new Audio();
    ogg.src = "music_fight.mp3";
    ogg.loop=true;
    ogg.load();
    ogg.play();
    set ("ogg",ogg);
    
[[main]]

[[main]]:

Can anyone explain this to me?


mrangel
02 May 2020, 16:16

Probably the response to those 'crazy frog' popup ads a few years back. Most browsers don't allow automatic audio playback anymore, it has to be triggered by the user clicking something within the page.


Bluevoss
02 May 2020, 21:32

Makes sense. To get around it, I had to add a forward page that you need to click by. A little annoying but not insurmountable. Came up with some nice art that adds to the mood.

Thanks for the explanation.


LA-Laker
09 Jun 2020, 03:03

I have a question. I've uploaded a fan-fic fight simulator demo. While the background music plays, when I hit refresh, it stops playing music. Is there a certain JavaScript or HTML code solution for that? I don't want to manually play it back, just automatically.


Bluevoss
09 Jun 2020, 09:58

Almost sounds like it purposely shut down, but we'd have to see the code.


LA-Laker
16 Jun 2020, 09:43

Here is the code.

CODE:

[[PBZ-STARTING-GAME]]:
@title Primal Battle Z Arcade Demo
@set music_code = on
@set arcadematchset = 2
@set randomopponent = ON

        setTimeout(function(){ squiffy.story.go("PBZ MAIN MENU-PRE"); }, 5000);

- This game is inspired by several fighting games, animated shows, anime and comics.
- This is a fight simulator demo.
<!-- Default Settings at the start = music_code = on, arcadematchset = 2 -->

[[PBZ MAIN MENU-PRE]]:
@clear
<center><img class="primalbattlezlogo"></center><br>
<center> Demo Version </center><br>
<center>[[Click to Play]](Proceed)</center>
<center> Version 1.05 </center>

[[Proceed]]:
        setTimeout(function(){ squiffy.story.go("Music-Menu"); }, 0);
        setTimeout(function(){ squiffy.story.go("PBZ MAIN MENU-PRE-2"); }, 0);

[[PBZ MAIN MENU-PRE-2]]:
<!-- Left Side - Player Basic Attack Accuracy -->
{@plaleftaccu_leftkick=50,plaleftaccu_rightkick=50,plaleftaccu_leftpunch=50,plaleftaccu_rightpunch=50,plaleftaccu_grapple=50,plaleftaccu_special=50}

<!-- Right Side - Computer Difficulty -->
{@cpudifficulty=50}

<!-- Arcade Mode Setting -->
{PBZ MAIN MENU}


[[PBZ MAIN MENU]]:
@clear

<center><img class="primalbattlezlogo"></center><br>
<center> Demo Version </center><br>
<center>[[Arcade Mode]](Arcade Mode)</center>
<center>[[Story Mode]](PBZ - Story Mode Demo)</center>
<center>[[In-Game Settings]](Game Settings Menu-Preview)</center>
<center> Character List - Coming Soon </center> 
<!-- <center>[[Character List]](Character List Menu)</center> -->
<center>[[Audio Test]](Audio Settings)</center>
<center> Tutorial - Coming Soon </center>
<center>[[Version Notes]](Version Patch Notes)</center>
<!-- Updating characters and features -->
<!-- <center>[[Arcade Mode Version 2]](Arcade Mode Version 2)</center> -->

-- CODE THAT PLAYS THE MUSIC---
[[Music-Menu]]:
@clear
    ogg = new Audio();
    ogg.src = "alexander-nakarada-cold-journey.ogg";
    ogg.load(); ogg.play(); ogg.loop = true;
    set ("ogg-audio",ogg);


---------------------------------------------------------------------------------------------------------------------------------------------------------------------
[[OPP-CHOICE-FINAL-RANDOM]]:
<center>
{if music_stage=1: Selected: Stage 1} {if music_stage=2: Selected: Stage 2} {if music_stage=3: Selected: Stage 3} {if music_stage=4: Selected: Stage 4: The Sanctuary}<br>
Your Opponent is: {if varcharranset=BLK:Blackfire} {if varcharranset=STA:Starfire} {if varcharranset=FOX:Foxy} {if varcharranset=SOU:Sousuke} {if varcharranset=YOM:Yomi} {if varcharranset=STO:Storm} {if varcharranset=LEE:Lee Sagara} {if varcharranset=KAG:Kagura} {if varcharranset=SAY:Saya} {if varcharranset=BIG:Bigby} {if varcharranset=RUS:Rushuna Tendo} {if varcharranset=ROB:Robin} {if varcharranset=KGM:Kagome} {if varcharranset=SAN:Sango} {if varcharranset=INU:InuYasha} {if varcharranset=REV:Revy} {if varcharranset=HAR:Harley Quinn} {if varcharranset=TES:Tessa} {if varcharranset=TER:Terra} {if varcharranset=BER:Beryl}

{if varcharranset=BLK: {if varset=0: [[<img class="picpan001">]](001-Blackfire-OPP0) } {if varset=1: [[<img class="picpan001">]](001-Blackfire-OPP1) } {if varset=2: [[<img class="picpan001">]](001-Blackfire-OPP2) } {if varset=3: [[<img class="picpan001">]](001-Blackfire-OPP3) } }
{if varcharranset=STA: {if varset=0: [[<img class="picpan002">]](002-Starfire-OPP0) } {if varset=1: [[<img class="picpan002">]](002-Starfire-OPP1) } {if varset=2: [[<img class="picpan002">]](002-Starfire-OPP2) } {if varset=3: [[<img class="picpan002">]](002-Starfire-OPP3) } }
{if varcharranset=FOX: {if varset=0: [[<img class="picpan003">]](003-Foxy-OPP0) } {if varset=1: [[<img class="picpan003">]](003-Foxy-OPP1) } {if varset=2: [[<img class="picpan003">]](003-Foxy-OPP2) } {if varset=3: [[<img class="picpan003">]](003-Foxy-OPP3) } }
{if varcharranset=SOU: {if varset=0: [[<img class="picpan004">]](004-Sousuke-OPP0) } {if varset=1: [[<img class="picpan004">]](004-Sousuke-OPP1) } {if varset=2: [[<img class="picpan004">]](004-Sousuke-OPP2) } {if varset=3: [[<img class="picpan004">]](004-Sousuke-OPP3) } }
{if varcharranset=YOM: {if varset=0: [[<img class="picpan005">]](005-Yomi-OPP0) } {if varset=1: [[<img class="picpan005">]](005-Yomi-OPP1) } {if varset=2: [[<img class="picpan005">]](005-Yomi-OPP2) } {if varset=3: [[<img class="picpan005">]](005-Yomi-OPP3) } }
{if varcharranset=STO: {if varset=0: [[<img class="picpan006">]](006-Storm-OPP0) } {if varset=1: [[<img class="picpan006">]](006-Storm-OPP1) } {if varset=2: [[<img class="picpan006">]](006-Storm-OPP2) } {if varset=3: [[<img class="picpan006">]](006-Storm-OPP3) } }
{if varcharranset=LEE: {if varset=0: [[<img class="picpan007">]](007-Lee Sagara-OPP0) } {if varset=1: [[<img class="picpan007">]](007-Lee Sagara-OPP1) } {if varset=2: [[<img class="picpan007">]](007-Lee Sagara-OPP2) } {if varset=3: [[<img class="picpan007">]](007-Lee Sagara-OPP3) } }
{if varcharranset=KAG: {if varset=0: [[<img class="picpan008">]](008-Kagura-OPP0) } {if varset=1: [[<img class="picpan008">]](008-Kagura-OPP1) } {if varset=2: [[<img class="picpan008">]](008-Kagura-OPP2) } {if varset=3: [[<img class="picpan008">]](008-Kagura-OPP3) } }
{if varcharranset=SAY: {if varset=0: [[<img class="picpan010">]](010-Saya-OPP0) } {if varset=1: [[<img class="picpan010">]](010-Saya-OPP1) } {if varset=2: [[<img class="picpan010">]](010-Saya-OPP2) } {if varset=3: [[<img class="picpan010">]](010-Saya-OPP3) } }
{if varcharranset=BIG: {if varset=0: [[<img class="picpan011">]](011-Bigby-OPP0) } {if varset=1: [[<img class="picpan011">]](011-Bigby-OPP1) } {if varset=2: [[<img class="picpan011">]](011-Bigby-OPP2) } {if varset=3: [[<img class="picpan011">]](011-Bigby-OPP3) } }
{if varcharranset=RUS: {if varset=0: [[<img class="picpan013">]](013-Rushuna Tendo-OPP0) } {if varset=1: [[<img class="picpan013">]](013-Rushuna Tendo-OPP1) }
{if varset=2: [[<img class="picpan013">]](013-Rushuna Tendo-OPP2) } {if varset=3: [[<img class="picpan013">]](013-Rushuna Tendo-OPP3) } }
{if varcharranset=ROB: {if varset=0: [[<img class="picpan021">]](021-Robin-OPP0) } {if varset=1: [[<img class="picpan021">]](021-Robin-OPP1) } {if varset=2: [[<img class="picpan021">]](021-Robin-OPP2) } {if varset=3: [[<img class="picpan021">]](021-Robin-OPP3) } }
{if varcharranset=KGM: {if varset=0: [[<img class="picpan041">]](041-Kagome-OPP0) } {if varset=1: [[<img class="picpan041">]](041-Kagome-OPP1) } {if varset=2: [[<img class="picpan041">]](041-Kagome-OPP2) } {if varset=3: [[<img class="picpan041">]](041-Kagome-OPP3) } }
{if varcharranset=SAN: {if varset=0: [[<img class="picpan043">]](043-Sango-OPP0) } {if varset=1: [[<img class="picpan043">]](043-Sango-OPP1) } {if varset=2: [[<img class="picpan043">]](043-Sango-OPP2) } {if varset=3: [[<img class="picpan043">]](043-Sango-OPP3) } }
{if varcharranset=INU: {if varset=0:[[<img class="picpan044">]](044-InuYasha-OPP0) } {if varset=1:[[<img class="picpan044">]](044-InuYasha-OPP1) } {if varset=2:[[<img class="picpan044">]](044-InuYasha-OPP2) } {if varset=3:[[<img class="picpan044">]](044-InuYasha-OPP3) } }
{if varcharranset=REV: {if varset=0: [[<img class="picpan045">]](045-Revy-OPP0) } {if varset=1: [[<img class="picpan045">]](045-Revy-OPP1) } {if varset=2: [[<img class="picpan045">]](045-Revy-OPP2) } {if varset=3: [[<img class="picpan045">]](045-Revy-OPP3) } }
{if varcharranset=HAR: {if varset=0: [[<img class="picpan056">]](056-Harley Quinn-OPP0) } {if varset=1: [[<img class="picpan056">]](056-Harley Quinn-OPP1) } {if varset=2: [[<img class="picpan056">]](056-Harley Quinn-OPP2) } {if varset=3: [[<img class="picpan056">]](056-Harley Quinn-OPP3) } }
{if varcharranset=TES: {if varset=0:[[<img class="picpan070">]](070-Tessa-OPP0) } {if varset=1:[[<img class="picpan070">]](070-Tessa-OPP1) } {if varset=2:[[<img class="picpan070">]](070-Tessa-OPP2) } {if varset=3:[[<img class="picpan070">]](070-Tessa-OPP3) } }
{if varcharranset=TER: {if varset=0: [[<img class="picpan073">]](073-Terra-OPP0) } {if varset=1: [[<img class="picpan073">]](073-Terra-OPP1) } {if varset=2: [[<img class="picpan073">]](073-Terra-OPP2) } {if varset=3: [[<img class="picpan073">]](073-Terra-OPP3) } }
{if varcharranset=BER: {if varset=0: [[<img class="picpan080">]](080-Beryl-OPP0) } {if varset=1: [[<img class="picpan080">]](080-Beryl-OPP1) } {if varset=2: [[<img class="picpan080">]](080-Beryl-OPP2) } {if varset=3: [[<img class="picpan080">]](080-Beryl-OPP3) } }



<!-- Computer Select with Variation Choices -->
<!-- 01: Blackfire -->
[[001-Blackfire-OPP0]]:
    ogg.pause(); ogg.currentTime = 0;
    set("rightside",01); set("cpu2RIGHTVARch00st00",0001);
    setTimeout(function(){ squiffy.story.go("CHA-Blackfire-Right Side"); }, 0);
    setTimeout(function(){ squiffy.story.go("RightSideFinished"); }, 0);

[[001-Blackfire-OPP1]]:
    ogg.pause(); ogg.currentTime = 0;
    set("rightside",01); set("cpu2RIGHTVARch00st00",1001);
    setTimeout(function(){ squiffy.story.go("CHA-Blackfire-Right Side"); }, 0);
    setTimeout(function(){ squiffy.story.go("RightSideFinished"); }, 0);

[[001-Blackfire-OPP2]]:
    ogg.pause(); ogg.currentTime = 0;
    set("rightside",01); set("cpu2RIGHTVARch00st00",2001);
    setTimeout(function(){ squiffy.story.go("CHA-Blackfire-Right Side"); }, 0);
    setTimeout(function(){ squiffy.story.go("RightSideFinished"); }, 0);

[[001-Blackfire-OPP3]]:
    ogg.pause(); ogg.currentTime = 0;
    set("rightside",01); set("cpu2RIGHTVARch00st00",3001);
    setTimeout(function(){ squiffy.story.go("CHA-Blackfire-Right Side"); }, 0);
    setTimeout(function(){ squiffy.story.go("RightSideFinished"); }, 0);

LA-Laker
18 Jul 2020, 00:55

Any update?


Bluevoss
18 Jul 2020, 01:51

Was this copied correctly? Up near the top, seven lines down, you suddenly go into code mode. There there are two bulleted lines. I doubt that's your problem. It just looks weird is all.

Also, if that weird line is code, it's not in the right place - JS should go above the squiffy stuff.

I am certainly not the sound guy as I was pulling chunks of example code down to make mine work. Let me see if I can get this to run.


Bluevoss
18 Jul 2020, 01:56

No, I had no luck getting it to run. That line seven-down,

setTimeout(function(){ squiffy.story.go("PBZ MAIN MENU-PRE"); }, 5000);

...is not right.


LA-Laker
18 Jul 2020, 02:02

Cool. Thanks. I'm going to upload my unique tutorials for users.


LA-Laker
18 Jul 2020, 02:04

By the way, maybe if I can remove the @clear function for the simple song code path? Will that help?


mrangel
18 Jul 2020, 09:05

That line looks right to me.

When you post code, put a line of 3 backticks (```) above it and another one below. This will make sure your code is displayed like it should be. If you're having trouble typing backticks (they're usually on the key below 'Esc', but it's different on some keyboard layouts), there's 3 to the right of the reply box → that you can copy and paste.


LA-Laker
19 Jul 2020, 04:45

By the way, I use the 3 backticks you've talked about. Thanks for the tip.