在音频播放时启动选框
Starting marquee on audio play
我正在尝试找到一种方法来为html中的选框标签设置时间标签。整个想法是以选框格式显示歌曲的字幕,并且仅在用户单击以启动音频时才启动选框。
我正在使用以下代码播放音频文件(html-5)
<audio controls="controls" loop="loop">
<source src="song.ogg" type="audio/ogg" />
<source src="song.mp3" type="audio/mpeg" />
Your browser does not support the audio element.Please use chrome.
</audio>
我正在做的是将此音频文件设置为自动播放,并让选框在页面加载时启动(这是默认设置)但这在高速网络上效果很好,对于低速网络,出现的问题是音频内容的加载延迟,因此选框文本开始在音频之前运行。这不酷
请告诉我如何通过javascript完成此问题的解决方案?
我不确定您如何启动选框标签,但您应该等待 play
- 音频事件 - 元素执行此操作。自动播放在元素开始播放时触发此事件。
请注意,marquee
-tag 已被弃用,我会改用 css-transitions,这可以通过添加特定的 className 轻松触发
给你的media-Element一个id,这样你就可以用javascript轻松访问它:
<audio id="audio" controls="controls" loop="loop">
<source src="song.ogg" type="audio/ogg" />
<source src="song.mp3" type="audio/mpeg" />
Your browser does not support the audio element.Please use chrome.
</audio>
和JavaScript - 代码:
var audioEl = document.getElementById("audio");
audioEl.addEventListener('play',function(){
//start your marquee in here
});
您可以在 W3C 页面上找到媒体元素支持的所有事件,并附有触发时间的说明。这为您提供了有关如何与 javascript 中的媒体元素交互的概述。
http://jsfiddle.net/kykMs/1/
最初将您的歌曲标题放在span
中:
<span id="song">Artist - Song Title</span>
然后在页面加载时将其替换为marquee
:
window.onload = function() {
var elem = document.getElementById("song");
var marq = document.createElement('marquee');
marq.innerHTML = elem.innerHTML;
document.getElementById("player").removeChild(elem);
document.getElementById("player").appendChild(marq);
}
相关文章:
- `canplay`HTML5音频事件未启动
- 如何在没有用户确认的情况下在iPhone的浏览器中启动音频
- 从我自己的按钮启动音频播放器
- 单击时重新启动音频和动画
- 在 iOS 中,哪些 JavaScript 事件符合 HTML5 视频/音频的“用户启动”条件
- 在音频播放时启动选框
- HTML5 - 一起启动音频和视频
- 如何同时启动多个音频标签
- 在下一个音频标签启动时停止音频标签
- 启动HTML5<音频>在随机位置
- <音频>.如果内容加载过快,addEventListener进程将无法启动
- Microsoft Edge未启动HTML5音频元数据
- HTML5音频的ontimeupdate没有在chrome中启动
- 取消初始化通过getUserMedia启动的音频录制
- 播放音频并单击后重新启动
- 仅在SImpleWebRTC中启动音频呼叫
- 重新启动音频时,我做另一个鼠标悬停
- 如何停止HTML5音频播放器自动当下一个播放器启动
- Web音频API:如何重新启动声音的播放
- Web音频API:同时启动多个MediaElementAudioSourceNode's