Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2024, 19:55   #1
Progman2
 
Регистрация: 25.07.2024
Сообщений: 4
По умолчанию Как создать медиапоток - MediaStream из аудиофайла ?

Добрый вечер!

Подскажите, пожалуйста, каким образом из аудиофайла создать медиапоток (MediaStream) в javascript?
Необходимо это для дальнейшей трансляции этого потока в webrtc-соединение.
Файл успешно загружается с сервера, но не совсем ясно, как создать MediaStream.

getFileFromServer получает адрес файла, скачивает его, создает Audio.
Здесь все ОК, но не понимаю, как создать stream..


Код такой:

Код:
   function getFileFromServer(httpAddress) {
        // Загружает файл с сервер.
        // Возвращаемое значение: промис от fetch
        let resp = fetch(httpAddress);
        return resp;
 
    } // function getFileFromServer(httpAddress)
 
    function getFile_Fulfilled(response) {
        // Обработка успешного получения ответа в _h_onClick_GetFileFromServer_
 
        if (response.ok) {
            // получили файл успешно
 
            // конвертируем файл в blob
            let fileBlob = response.blob();
            fileBlob.then(
                function blob_Fulfilled(f_blob) {
                    // blob извлечен, сформируем url
                    let blobURL = URL.createObjectURL(f_blob);
 
                    // создаем аудио из blob-a и тестируем звук
                    try {
                        let newAudio = new Audio(blobURL);
                        newAudio.autoplay = false;
                        newAudio.play();                 
  // ПРОИГРЫВАЕТ ФАЙЛ => ВСЕ ЗАГРУЗИЛОСЬ НОРМАЛЬНО
 
                        console.log("--- newAudio ---");
                        console.log(newAudio);
 
                        // получаем stream
                        
                        let newStream = newAudio.captureStream();     
  // ЗДЕСЬ ОШИБКА - НЕТ ТАКОЙ ФУНКЦИИ - captureStream
  // А ЧЕМ ТОГДА ВОСПОЛЬЗОВАТЬСЯ ?
Progman2 вне форума Ответить с цитированием
Старый 26.07.2024, 20:57   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,757
По умолчанию

Код:
const ctx = new (window.AudioContext || window.webkitAudioContext)();
const stream_dest = ctx.createMediaStreamDestination();
const source = ctx.createMediaElementSource(newAudio);
source.connect(stream_dest);

const stream = stream_dest.stream;
p51x вне форума Ответить с цитированием
Старый 27.07.2024, 14:21   #3
Progman2
 
Регистрация: 25.07.2024
Сообщений: 4
По умолчанию

p51x, спасибо - это работает !
Progman2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование аудиофайла формата .FWSE в .WAV Night Furious Фриланс 12 30.05.2018 15:43
Защита аудиофайла LaraK Общие вопросы Web 10 18.06.2017 22:19
Сохранение аудиофайла с CD Fornit Мультимедиа в Delphi 3 05.03.2012 17:14
Обрезание Аудиофайла Den7656 Общие вопросы Delphi 1 15.12.2011 10:58
Обрезание Аудиофайла Den7656 Компоненты Delphi 0 14.12.2011 18:40