Веб-аудио API не воспроизводит звук

1

Я пытаюсь записать песни в формате MP3 с помощью js и socket io в режиме реального времени. Я в основном разделяю MP3 на сегменты байтов и отправляю их на клиентскую сторону, где веб-аудио API получит его, расшифрует и начнет воспроизводить его. Проблема здесь в том, что звук не воспроизводится непрерывно, есть что-то вроде промежутка в 0,5 секунды между каждым буферизованным сегментом. Как я могу решить эту проблему

// buffer is a 2 seconds decoded audio ready to be played 
// the function is called  when a new buffer is recieved
function stream(buffer)
{
    // creates a new buffer source and connects it to the Audio context
    var source = context.createBufferSource();
    source.buffer = buffer;
    source.connect(context.destination);
    source.loop = false;
    // sets it and updates the time 
    source.start(time + context.currentTime);

    time += buffer.duration; // time is global variable initially set to zero
}

Часть, называемая потоком

    // where stream bufferQ is an array of decoded MP3 data 
    // so the stream function is called after every 3 segments that are recieved 
     // the Web audio Api plays it with gaps between the sound
    if(bufferQ.length == 3)
    {
        for(var i = 0, n = bufferQ.length ; i < n; i++)
        {
              stream(bufferQ.splice(0,1)[0]);
        }
    }

следует ли использовать другой API, отличный от API веб-аудио, или есть способ запланировать мой буфер, чтобы он воспроизводился непрерывно?

Теги:
web-audio-api
socket.io
buffer

1 ответ

0

Это проблема с mp3 файлами, каждый mp3 файл имеет несколько кадров тишины в начале и в конце. Если вы используете файлы wav или время запуска и остановки каждого файла, вы можете его исправить

Ещё вопросы

Сообщество Overcoder
Наверх
Меню