Remove play button on html5 opening screen in Storyline 360

Jan 05, 2017

Is there a way of editing the code on one of the files to remove the big play button that appears on the opening screen of a mobile device accessing the html5 file? I've seen threads on how to do it on SL2, but not on SL 360. I can't seem to locate the player_compiled.js (or story_compiled.js) file to even edit it. I'm using SL 360 publish to Web with HTML5 only content option. When the published file gets uploaded to mobile iOS device, the opening screen is always the Play button (see image below). And yes, I know that editing published files is not supported by Articulate. 

95 Replies
Eric Friedman

Wondering if there has been any update on this? I too share the concern and frustration of others on this thread. I am creating a learning object that has not video or audio to play on the first screen and therefore no play button is required. It will be confusing to users. I am going to have to add text above the object explaining that in order to access the learning object, they will need to tap the play button. It's a bit of an embarrassment frankly, which will likely lead to my needing to go with another content creation tool.

Ashley Terwilliger-Pollard

Hi Eric, 

Thanks for checking in on an update for this. There isn't an option to disable that play button, as that fix was put in play to help with the autoplay issues folks were seeing in browsers such as Chrome, Safari, etc. Even if there is no audio/video on the first slide, having the button ensures there is a learn interaction to allow any other media to autoplay and ensure a seamless flow throughout the course. 

We'll certainly let folks here know if anything changes on this setup! 

Terry Bell

Hi Mike,

Thanks - I have used the solution ever since I saw your post, but now SL has changed the file structure of the published output, and app.min.js doesn't exist anymore, and I couldn't find the text you described above in any of the new js files.

Is there any chance you have discovered the work around for the latest SL360 published output?

Thanks!

edit: adding the text of the post I was replying to.

Mike Maas, almost 3 years ago
This worked for me:

search in app.min.js for MobileStartOverlay:function()

Right after the text that reads var c=a("polyfills/detection"); type this:  setTimeout(this.onStart, 1);

The final line should look something like this:

... MobileStartOverlay:function(){var c=a("polyfills/detection");setTimeout(this.onStart, 1);return b.createElement ...

Rachel Cannon

This worked for me in the latest version of SL (March 3, 2020 3.37.21614.0):

  • Search in ds-slides.min for MobileStartOverlay:function().
  • Find this instance: MobileStartOverlay:function(){var e=this,t=DS.stringTabler,n=DS.vendorOverrides.feDropShadow ...
  • It continues on and on until you reach return c.createElement.
  • Just like Mike's old instructions, add setTimeout(this.onStart, 1); just before this so it looks like:
l=o.isUnified,u=s.env.is360;setTimeout(this.onStart, 1);return c.createElement

Hope this helps!

Oscar Gagliardi, Jr.

I understand the need for the play button at the beginning of a Storyline module, but on mobile devices why do we need it if the module doesn't have any audio or video on the first slide?
Why you don't give us at least the option to customize the black screen with the play button (that looks more like a mistake). It really looks out of place and not professional. Please make this a priority. Thank you.

Katie Riggio

Hi there, Oscar!

Play Button on Mobile

The play button is standard on mobile devices since it requires user interaction. To add more color to the 'why':

What you're describing is the intended behavior for Storyline content on a phone. It's the same approach for how iOS handles videos, for instance. Videos get a play button on the phone and then go full-screen when clicked. This is done due to the limited real estate on the phone. The same approach is taken for Storyline content. - Adam

Let me know if that helps. I'll also surface the need to customize how that play button looks with our team!

Oscar Gagliardi, Jr.

Hi Katie,

Thank you for your quick reply. Yes, I understand why the need of the play button at the start of a Storyline module, specially on mobile devices. As a user I will like to have an option to make some minor custom modifications to this page. For example, changing the color of the background and play button, maybe adding some additional text or increasing and centering the title of the program. 

I have been able to customize the start screen using css, but of course it will be nice if the customization options reside within the Articulate Storyline Authoring tool.

Thank you to Articulate for producing this great authoring tool and for all the features it keeps adding. It really show the dedication Articulate has to the industry and its customers.

Oscar

Eric Fox

And I'm just going to keep saying this until someone at Articulate listens/understands:

A "play" button at the beginning of Storyline content is only necessary when there is content that might autoplay (e.g., audio or video) at the beginning. If Articulate can't figure out how to intelligently detect that, the author should be allowed to set whether or not a play button appears.

For example, if I have a drag-and-drop exercise that I create in Storyline, there is no reason at all for mobile users to first click a confusing "Play" button to begin dragging the objects. The dragging itself (or the selection of a multiple choice option or the clicking on a hotspot or...) IS the user interaction. You do not need to create a perfunctory or substitute user interaction (the play button) to indicate the user's willingness to begin the real user interaction.

 H5P content is a great example of this. Most H5P content types work brilliantly across mobile devices and browsers without the need for a play button to launch or activate them.

And it's not just about styling that play button -- it's about displaying it only when it is absolutely necessary. For a great deal of content, it is not necessary (and is, in fact, confusing and cumbersome for the end user).

Oscar Gagliardi, Jr.

Well said Eric. On Desktop computers a module that doesn't have audio or video on the first slide doesn't display the awful screen with the play button. On mobile devices it appears regardless. I think we need Articulate to first address the inconsistency and then provide us with a way to customize this screen.

Oscar

Anne Seller

Hi Everyone,

I found this solution (from Sebastjan F.) in another forum post:

Replace the </script> </html> tags at the bottom of the index.html (or story_html5.html) file with this code:


<!-- This removes the play button overlaý: -->

document.addEventListener("DOMNodeInserted", function(event) {

if($(event.target)[0].className=="launch_interstitial"){

player.revealPostInterstitial();

}

});

</script>

</html>


It works for me in SL2, so I hope it works for SL360 too.

Cheers,
Anne

Math Notermans

At last found how to overcome the playbutton on Mobile...  thx to Mike and Rachel for pointing me in the right direction..

Indeed in SL360 it is in the ds-slides.min.js..
What i did was unminifying the file...so it becomes what more readable 
Used this here... https://unminify.com/

I added several console.log("now this happens") to the ds-slides.min.js to figure out where what happened exactly and thus soon found that there are several functions in it that cause the playbutton on mobiles.

onMobileStart
createMobileStartOverlay
showMobileStartOverlay
killMobileStartOverlay

All quite promising...so could i just call one of these functions ?

After several tests and retry's i found that just adding
this.onStart(); at the end of the onMobileStart function overrides the play button and mobile behaves as desired.

So this is onMobileStart inside ds-slides.min.js

onMobileStart: function (t) {
var e,
n = this;
(this.rejectDeferred = t.rejectDeferred),
o.addClass(document.body, "resume-shown"),
(e = { visible: !0 }),
t.mobileStartAsPrompt && (e.isResumePrompt = !0),
this.setState(e, function () {
var t = null != n.refs.resume ? n.refs.resume : n.refs.playIcon;
c.env.is360 || t.focus(), l.trigger(u.startOverlay.READY);
});
this.onStart();
},

Do test it with this one...
https://360.articulate.com/review/content/70c26959-da56-4891-9d58-06277ed61d32/review

Math Notermans

A test with audio on mobile is here...
https://360.articulate.com/review/content/26772712-a9cc-43f2-abc0-0071ef7759c2/review

No default Storyline play button. I tried to trigger audio automatically but that doesnot work. To play audio on mobiles a button and userinteraction as shown here is still needed. But for me thats fine. I want control and not a fixed setting in the Storyline player.

Next test will be video, expecting the same result...and then into Rise.

@Articulate. DO implement it this way in ds-slides.min.js too...

When done testing video and in Rise i will add my unminified ds-slides file so the developers can check upon that...

Math Notermans

And the Rise test works also as expected. Thats great...  no autoplay however, but i donot mind.
I tested only on my Samsung Galaxy J7..

The ds-slides.min.js and the unminified version i attach. Do rename your original when working with this and do keep a copy of it outside the default Articulate folder ("C:\Program Files (x86)\Articulate\360\Storyline\player\unified\html5\lib\scripts") because when they update Storyline all here will be overwritten.

folder

I exchanged the original ds file for my edited one, so all i publish will be without the 'Big-Black-Mobile-Play-Button'.

ds-slides.edits.js is the unminified file with my edits in it.
ds-slides.min.js is the same file, but now minified again and thus ready for use...

Kind regards,
Math

Math Notermans

If you ask Articulate employees, its by design and no bug ;-)

As Storyline uses the sIides.min.js files from your local  Program Files folder, i added 'this.onStart()' to the slides.min.js file by default. So now every publish i do has that automagically correct in it and i never have to bother about it.

In fact i did something extra. I use 'Symbolic Links' to point that file ( and some others ) to a local folder on my harddrive. That way i can edit those files whenever i want and need. Program Files folder doesnot allow editing. This way i added some code for me unmissable to the files.

folders