Предполагая, что вы не можете использовать стандартный атрибут controls
для обработки громкости и сканирования по файлу, вы можете использовать логику, аналогичную той, что вы уже реализовали для громкости, чтобы контролировать положение в файле.
Выможно использовать элемент range
со значениями от 0
до 100
, а затем установить currentTime
звука на основе значения в процентах. Также обратите внимание, что вы можете использовать событие timeUpdate
для перемещения ползунка диапазона во время воспроизведения файла. Попробуйте это:
<div class="audio-clip">
<audio id="audio" src="http://www.sousound.com/music/healing/healing_01.mp3" preload="auto"></audio>
<label>
Volume:
<input type="range" class="volume" min="0" max="1" step="0.1" value="1" />
</label>
<label>
Position:
<input type="range" class="position" min="0" max="100" step="1" value="0" />
</label>
</div>
$(".audio-clip .volume").on("input", function() {
var audio = $(this).closest("div").find("audio")[0];
audio.volume = this.value;
});
$('.audio-clip .position').on('input', function() {
var audio = $(this).closest("div").find("audio")[0];
audio.currentTime = (audio.duration / 100) * this.value;
});
$('audio').on('timeupdate', function() {
var pc = (audio.currentTime / audio.duration) * 100;
$(this).closest('div').find('.position').val(pc);
})
Обратите внимание, что пример не будет работать во фрагменте из-за междоменного источника звука, однако он работает в скрипке, как вы можете видеть по ссылке ниже:
Рабочий пример