HTML: Как начать воспроизведение звука с середины файла URL без буферизации всех звуковых данных до этого момента - PullRequest
0 голосов
/ 21 ноября 2010

У меня длинный mp3-файл, размещенный на стандартном сервере Apache (пока 30 минут, но я бы хотел, чтобы он работал и с более длинными звуками).

Я бы хотел начать воспроизведение этого аудио в указанной точке.

Когда я пытаюсь использовать Flash Actionscript 3, мои базовые тесты показывают, что ВСЕ аудио от начала до выбранной позиции буферизуются до воспроизведения (Sound.bytesLoaded был моим другом здесь).Если я запускаю одну секунду, для начала воспроизведения требуется около 3 секунд, через 30 секунд - около 25 секунд.Очевидно, что с очень длинным mp3, таким как пропуск воспроизведения до середины 3-часовой аудиокниги, это не будет практичным.

Вот код ActionScript 3.0, который я использую:

button.addEventListener(MouseEvent.MOUSE_DOWN, function():void {
 var s:Sound = new Sound(); 
 var req:URLRequest = new URLRequest("http://example.com/audio.mp3"); 
 s.load(req); 
 s.play(30 * 60 * 1000); // start 30 seconds in.
} 
);

Кто-нибудь знает, возможно ли это даже во Flash?

Если нет, то возможно ли сделать это с веб-страницы без установки какого-либо серверного решения?

Спасибомного.

1 Ответ

1 голос
/ 21 ноября 2010

Насколько я понимаю, речь идет об обычной «прогрессивной загрузке» через HTTP против потоковой передачи.

В стандартной настройке обычный HTTP-сервер и Flash Player не могут пропускать фрагменты mp3 или видео, сначала необходимо загрузить все данные до этого момента, как вы описали.

Одним из способов включения пропуска / поиска является использование потокового сервера, такого как Flash Media Streaming Server от Adobe или альтернативы с открытым исходным кодом Red5 для обслуживания mp3.

Но есть также способы настроить так называемый «псевдопоток» на HTTP-сервере:

http://flowplayer.org/plugins/streaming/pseudostreaming.html

...