2013-06-03 2 views
3

Я разрабатываю аудиоплеер HTML5 для использования специально на iPhone, и пытаюсь получить визуализатор EQ. Из того, что я нашел, что есть два способа установить это:Получение аудио визуализации с использованием API веб-аудио для работы на iOS


One, где вы загружаете файл mp3 по запросу с использованием XMLHttpRequest:

var request = new XMLHttpRequest(); 
request.open('GET', 'sampler.mp3', true); 
request.responseType = 'arraybuffer'; 
request.addEventListener('load', bufferSound, false); 
request.send(); 

function bufferSound(event) { 

    var request = event.target; 
    var buffer = myAudioContext.createBuffer(request.response, false); 
    source = myAudioContext.createBufferSource(); 
    source.buffer = buffer; 

} 

Затем используйте source.noteOn и source.noteOff для воспроизведения и приостановки звука. Работая таким образом, я могу получить визуализацию EQ. НО, вам нужно подождать, пока mp3-файл полностью загрузится, чтобы начать играть, что не будет работать в нашей ситуации.


Другой способ сделать это, чтобы иметь <audio> элемент уже на странице, и вы получите аудиоданные от использования:

source = myAudioContext.createMediaElementSource(document.querySelector('audio')); 

Вы затем использовать воспроизведение аудио тега и паузы функции. Это решает проблему загрузки, так как позволяет воспроизводить медиафайлы сразу после загрузки страницы ... НО, визуализация EQ исчезла.


Оба метода показывает EQ при тестировании на Chrome (WIN), так что, кажется, что-то конкретное с прошивкой/iPhone, который не позволяет мне получить данные из <audio> тега, но позволит мне чтобы получить его, если я загружаю mp3-файл по требованию.

...

Любые идеи?

ответ

2
+0

И вот это ... человек, я довольно долго искал и не видел этого поста. Плюс у меня нет iPhone, поэтому я должен протестировать его на другом, и еще не смог его отладить. В любом случае спасибо за помощь. – jhallmusic

+0

Нет проблем. Я был так же разочарован, как и ты. Надеюсь, Mozilla не будет иметь такую ​​же проблему, как только они реализуют «MediaElementSource» -_- – idbehold

+0

Истинный истинный ... Я сообщил об ошибке непосредственно Apple, хотя я предполагаю, что это ничего не может сделать. :) – jhallmusic

 Смежные вопросы

  • Нет связанных вопросов^_^