62
задан 14 October 2012 в 08:52

9 ответов

Работы над мой хром ...

$('#audio').bind('canplay', function() {
  this.currentTime = 29; // jumps to 29th secs
});
52
ответ дан 31 October 2019 в 13:24

Можно использовать #t диапазон времени URI свойство
, и это допустимо и для [1 113] аудио и для видео медиа.

stackoverflow.mp3#t=8.5 // Will start playing from the 8.5 sec.

var a = new Audio();
a.src= "http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg#t=4.5";
a.play();

, Если Вы хотите к [1 115] динамично пропуск к определенному диапазону, чем использование HTMLMediaElement. currentTime:

audio.currentTime = 8.5;
16
ответ дан 31 October 2019 в 13:24

очень более легкое решение

var element = document.getElementById('audioPlayer');

//first make sure the audio player is playing
element.play(); 

//second seek to the specific time you're looking for
element.currentTime = 226;
10
ответ дан 31 October 2019 в 13:24

Firefox также выполняет запросы диапазона байта при поиске содержания, которое он еще не загрузил - это не просто хромовая проблема. Установите Принимать-диапазоны "заголовка ответа: байты" и возврат 206 Частичных кодов состояния Содержания, чтобы позволить любому клиенту выполнять запросы диапазона байта.

См. https://developer.mozilla.org/en-US/docs/Web/HTTP/Configuring_servers_for_Ogg_media#Handle_HTTP_1.1_byte_range_requests_correct ly

7
ответ дан 31 October 2019 в 13:24

Я сталкивался с проблемой, что индикатор выполнения аудио не работал, но аудио работало правильно. Этот код работает на меня. Надежда это поможет Вам также. Здесь песня является объектом аудио компонента.

Часть

<input type="range" id="seek" value="0" max=""/>

HTML Часть

    $("#seek").bind("change", function() {
            song.currentTime = $(this).val();               
        });

song.addEventListener('timeupdate',function (){

    $("#seek").attr("max", song.duration);
    $('#seek').val(song.currentTime);
    });
JQuery
5
ответ дан 31 October 2019 в 13:24

Ответ @katspaugh корректен, но существует обходное решение, которое не требует никакой дополнительной конфигурации сервера. Идея состоит в том, чтобы получить звуковой файл как блоб, преобразовать его к dataURL и использовать его в качестве src для audio элемент.

Вот решение для углового $http, но в случае необходимости я могу добавить ванильную версию JS также:

$http.get(audioFileURL,
        {responseType:'blob'})
        .success(function(data){
            var fr = new FileReader;
            fr.readAsDataURL(data);
            fr.onloadend = function(){
                domObjects.audio.src = fr.result;
            };
        });

предостережения

  1. Это обходное решение не подходит для больших файлов.
  2. Это не будет работать перекрестный источник, если CORS не будут установлены правильно.
4
ответ дан 31 October 2019 в 13:24

Положение времени набора к 5 секундам:

var vid = document.getElementById("myAudio");
vid.currentTime = 5;
2
ответ дан 31 October 2019 в 13:24

Для перехода вокруг звукового файла сервер должен быть настроен правильно.

клиент отправляет запросы диапазона байта , чтобы искать и играть определенные регионы файла, таким образом, сервер должен ответ соответственно:

для поддержки поиска и воспроизведения регионов медиа, которые еще не загружаются, Геккон использует запросы диапазона байта HTTP 1.1 для получения медиа от искать целевого положения. Кроме того, если Вы не вручаете заголовки X-Content-Duration, Геккон использует запросы диапазона байта для поиска в конец медиа (предполагающий, что Вы вручаете заголовок Довольной Длины) для определения продолжительности медиа.

Затем если ответы сервера на байт располагаются запросы правильно, можно установить положение аудио через currentTime:

audio.currentTime = 30;

См., что MDN's Настраивает серверы для медиа Ogg (то же касается других форматов, на самом деле).

кроме того, см. Настраивать веб-серверы для видео HTML5 Ogg и аудио .

65
ответ дан 31 October 2019 в 13:24

Удостоверьтесь, что Вы пытаетесь установить currentTime свойство после , аудио элемент готов играть. Можно связать функцию с oncanplay атрибут события, определенный в спецификации.

можно ли отправить образец кода, который перестал работать?

8
ответ дан 31 October 2019 в 13:24

Другие вопросы по тегам:

Похожие вопросы: