【发布时间】:2017-02-22 16:13:53
【问题描述】:
在 THIS 页面上制作了一个自定义的 HTML 5 音频播放器“处理程序”:
<div class="default-player">
<audio controls="" autoplay="" name="media" id="audio_player">
<source src="http://stream.radio.co/sedf8bacc9/listen" type="audio/mpeg">
</audio>
</div>
<div id="audioplayer">
<button id="pButton" class="pause"></button>
<div id="timeline">
<div id="playhead"></div>
</div>
<div id="volume_control">
<label id="rngVolume_label" for="rngVolume">Volume:</label>
<input type="range" id="rngVolume" min="0" max="1" step="0.01" value="1">
</div>
<div class="current-piece">
<div class="now-playing">Now playing:</div>
<script src="https://public.radio.co/embed/sedf8bacc9/song.js"></script>
</div>
</div>
我编写了这个小脚本来将实际播放器绑定到“句柄”:
function radioPlayer(){
var music = document.getElementById('audio_player');
function playAudio() {
if (music.paused) {
music.play();
pButton.className = "";
pButton.className = "pause";
} else {
music.pause();
pButton.className = "";
pButton.className = "play";
}
}
function setVolume(volume) {
music.volume = volume;
}
$('#pButton').on('click', playAudio);
$('#rngVolume').on('change', setVolume);
}
radioPlayer();
当我使用 音量范围输入时,我收到此错误:“未捕获的 TypeError:无法在 'HTMLMediaElement' 上设置 'volume' 属性:提供的双精度值是非有限的。”
这是什么原因?
【问题讨论】:
-
体积变量在哪里定义?由于您只是将 setVolume 绑定到元素,仅此而已,因此处理程序内部可能未定义音量。
-
@Shilly:这就是所有的代码。
-
因此我要问,代码中决定“volume”值的部分在哪里?我期待像
music.volume = this.val();这样的东西,因为没有显示将音量值设置为 rngVolume 滑块的值。
标签: javascript audio media-player