Решения для потокового (не?) веб-аудио?

Я хочу встроить несколько аудио на свой сайт. Я хочу, чтобы файл загружался, но не воспроизводился, пока пользователь не нажмет кнопку. Я также хочу, чтобы была возможность прыгать в места, которые еще не загружены, как это делает YouTube. Было бы здорово, если бы я мог играть в ogg, aac, mp4 и т. д., Но я не ожидаю, что это будет возможно, поэтому я не возражал бы, чтобы другая версия была преобразована с помощью ffmpeg (или что-то еще)

Что я могу использовать, чтобы получить этот аудиоплеер, похожий на YouTube?

-edit- извините, ребята, меня не было, и я вовремя не выбрал лучший ответ. Я считаю, что решения для потокового (не?) веб-аудио? - лучший, за решения для потокового (не?) веб-аудио? следует сорин.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
683
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Я не понимаю, почему ты не хочешь стриминг? Потому что это именно то, что я бы рекомендовал здесь. Обратите внимание, что потоковая передача не обязательно означает наличие большого уродливого встроенного плеера типа Windows Media, QuickTime или Real Player.

Я бы порекомендовал использовать MP3 Audio и Flash, используя бесплатный Медиаплеер JW FLV, который должен делать все, что вы хотите, за исключением вещи «низкое / высокое качество», но, возможно, вы можете просто использовать два плеера, если вам нужно.

Я бы поддержал предложение Майкла с небольшой модификацией:

Вы можете использовать флеш-плеер с открытым исходным кодом (например, XSPF Flash-плеер) и взломать его так, чтобы он начал загружать звук еще до того, как вы начнете воспроизведение. Таким образом, вы можете получить все звуки на клиенте через определенный период времени (который зависит от соединения между клиентом и сервером).

Вы также можете взглянуть на Звуковой менеджер v2, который предлагает тесную интеграцию с Javascript без необходимости дополнительных хаков.

В декабре я потратил пару недель на эту тему, и SoundManager v2 на сегодняшний день является лучшим проигрывателем с поддержкой сценариев Javascript.

Jens Roland 19.02.2009 17:56

Есть ли смысл "начинать загрузку", если звук потоковое ??? вы можете захотеть выполнить предварительную буферизацию, но, насколько мне известно, вы не можете кэшировать весь поток.

Theo.T 22.02.2009 00:05

Обычно потоковая передача используется в смысле «быстрее начать воспроизведение файла конечного размера», а не в точном значении «воспроизвести - возможно, бесконечный - поток». Это тот смысл, который я использовал (так что я имел в виду предварительную буферизацию всего файла).

Grey Panther 23.02.2009 14:52

Вы видели Wimpy Player? У них есть разные продукты, от простой звуковой кнопки до видеоплеера со списком воспроизведения.

Я не уверен, что нужно переходить к разным частям файла, но они говорят, что он программируется с помощью Ajax, и я знаю, что вы можете установить, будет ли он воспроизводиться автоматически или нет.

Я использовал это какое-то время, но позже заменил на что-то с простой кнопкой «воспроизведение / пауза».

(Кстати, я не понимаю вашего интереса к проигрывателю без потоковой передачи. Если пользователю нужно сначала загрузить файл, зачем вам предоставлять интерфейс? Разве они не откроют его с помощью той программы, которую используют на их компьютере?)

  1. Если вы хотите, чтобы это было в браузере, я предлагаю использовать что-то на основе Flash (это намного проще для конечного пользователя, основано на гораздо лучшем API и имеет гораздо лучшее проникновение, чем любой медиаплеер, на который вы хотели бы рассчитывать. ).
  2. Во Flash вы можете загружать аудио / видео по двум протоколам: HTTP или RTMP.
  3. RTMP - это удобный протокол для аудио / видео, который поддерживает «поиск» в документе. Он реализован на сервере Flash Media Server, а также в Красный5 с открытым исходным кодом. Однако это означает, что вам нужно будет запустить этот сервер или купить службу RTMP.
  4. HTTP поддерживает получение части файла (путем указания заголовка Range), но сам протокол не зависит от формата, поэтому, если это переменная скорость передачи данных, у вас, вероятно, возникнут некоторые проблемы. Таким образом, технически вы должны иметь возможность перейти в файл к разделу, который не загружен, хотя Flash может не допускать этого по ... скажем, причинам проприетарный.
  5. mp4, ogg, aac будет проблематично даже с Flash. Лучше всего было бы преобразовать их в общий формат во время загрузки - я думаю, что Flash поддерживает только mp3 до версии 9 и AAC, начиная с Flash Player 9. ffmpeg и mplayer могут обрабатывать / конвертировать во многие форматы.
  6. К сожалению, здесь нет серебряной пули. Если вы хотите что-то гибкое, вам придется потратить некоторое время на разработку и создать что-то гибкое (не только веб-плеер, но и некоторую закулисную магию).

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