
在storyline3软件中没有背景音乐的功能
因为这类课件属于网页类课件,浏览器有一个限制,不允许网页开启的时候自动播放影音内容
所以增加的背景音乐,需要点击按钮之后才能播放
在幻灯片的第一帧,随便加进来一个元件(可以是形状、图片之类的),它的用途,起到加入mp3文件,并初始化背景音乐代码
如何加入mp3?
就是给该元件加一个触发器,可以是用户单击的时候,跳转到URL(文件),文件你选择需要的mp3文件
你会觉得疑惑,为什么是单击的时候,而不是“时间轴进入”的时候,这个你自己思考吧,
我可以告诉你,自已要这样设置了,在storyline发布的文件之中,在story_content里会产生一个文件夹:external_files
里面已经有了你需要的mp3文件
这样你就可以在代码里调用它了。。。。
初始化的相关的代码如下:
---------------------------------------------
// 确保在全局作用域中创建变量
if (typeof window.bgMusic === 'undefined') {
window.bgMusic = new Audio('story_content/external_files/12.mp3');
window.bgMusic.loop = true;
window.bgMusic.volume = 0.5;
}
// 尝试播放
window.bgMusic.play().catch(function(error) {
console.log("自动播放被阻止:", error);
});
-----------------------------------------------
在上面代码之中,用到了一个全局的变量window.bgMusic,如果是自己随便定义的变量是不行的,起不到全局的作用。
因为当您在Storyline的不同触发器中使用JavaScript时,每个触发器中的代码都是在独立的作用域中执行的。您在第一个触发器中创建的局部变量,在第二个触发器中是无法直接访问的。
在播放按钮中的代码:
// 检查全局变量是否存在并暂停
if (window.bgMusic) {
window.bgMusic.play()();
console.log("背景音乐已播放");
} else {
console.log("未找到背景音乐对象");
}
在暂停按钮中的代码:
// 检查全局变量是否存在并暂停
if (window.bgMusic) {
window.bgMusic.pause();
console.log("背景音乐已暂停");
} else {
console.log("未找到背景音乐对象");
}
