Воспроизведение аудио файла - PullRequest
0 голосов
/ 30 мая 2019

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

Большинство библиотек, которые я нашел, занимаются синтезом звука, и их примеры сосредоточены на этой теме.

1 Ответ

1 голос
/ 31 мая 2019

Я использовал cljs-bach , обертку вокруг Web Audio API . Это проще, чем использовать HTML5 Audio , поскольку позволяет одновременно воспроизводить несколько аудиобуферов без необходимости создания нескольких узлов DOM.

Вот пример, который я искал:

(ns foo.bar (:require [cljs-bach.synthesis :as b]))

(defonce audio-context (b/audio-context))

(defn playback-mp3
  [url]
  (let [mp3 (b/connect-> (b/sample url)  ; read file using js ajax, including caching
                         (b/gain 0.5)    ; you can chain optional effects here
                         b/destination)  ; loudspeakers
        ]
    (b/run-with mp3
                audio-context
                (b/current-time audio-context) 
                3.0  ; play for 3 seconds
     )))

; (playback-mp3 "/music/qux.mp3")
...