第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

未捕獲(承諾)DOM異常:無法將音頻數(shù)據(jù)從自解碼為 JavaScript

未捕獲(承諾)DOM異常:無法將音頻數(shù)據(jù)從自解碼為 JavaScript

藍(lán)山帝景 2022-09-16 21:53:45
我有一個python應(yīng)用程序,它從麥克風(fēng)獲取音頻,將其發(fā)送到服務(wù)器,服務(wù)器又將其發(fā)送到j(luò)avascript應(yīng)用程序。我已經(jīng)檢查過,python應(yīng)用程序發(fā)送的數(shù)據(jù)與javascript應(yīng)用程序接收的數(shù)據(jù)相同。在控制臺的 java 腳本應(yīng)用程序中,將顯示以下消息:。Uncaught (in promise) DOMException: Unable to decode audio data我認(rèn)為問題是因?yàn)榘l(fā)送的數(shù)據(jù)是原始數(shù)據(jù),沒有“.wav”標(biāo)頭,但我也嘗試使用wave將數(shù)據(jù)寫入文件并讀取它,出現(xiàn)相同的錯誤。數(shù)據(jù)作為二進(jìn)制數(shù)據(jù)發(fā)送/接收,使用網(wǎng)頁密碼。蟒蛇代碼:# self data in initself.sampleRate = 44100self.duration = 1 / 30self.channels = 2self.chunk = 1024self.format = pyaudio.paInt16# codepyAudio = pyaudio.PyAudio()frames = []stream = pyAudio.open(    format=self.format,    channels=self.channels,    rate=self.sampleRate,    input=True,    output=True,    frames_per_buffer=self.chunk)data = stream.read(int(44100 / self.chunk * self.duration))frames.append(data)recording = datastream.stop_stream()stream.close()pyAudio.terminate()記錄數(shù)據(jù)是發(fā)送到 java 腳本應(yīng)用程序的數(shù)據(jù)。我知道我應(yīng)該錄制多個幀,但我這樣做了,因?yàn)樗菀诇y試。腳本代碼:function playByteArray(byteArray) {    var arrayBuffer = new ArrayBuffer(byteArray.length);    var bufferView = new Uint8Array(arrayBuffer);    for (i = 0; i < byteArray.length; i++) {      bufferView[i] = byteArray[i];    }    context.decodeAudioData(arrayBuffer, function(buffer) {        buf = buffer;        play();    });}function play() {    var source = context.createBufferSource();    source.buffer = buf;    source.connect(context.destination);    source.start(0);}我也用聲音設(shè)備python模塊嘗試過它,但我得到了同樣的錯誤(正常方法,我無法讓Stream回調(diào)方法工作)。
查看完整描述

1 回答

?
慕的地8271018

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個贊

我解決了將 更改為以下函數(shù)的問題:playByteArray


function playByteArray(byteArray) {

    audio = new Audio();

    var blob = new Blob([byteArray], { type: 'audio/wav; codecs=0' });

    var url = window.URL.createObjectURL(blob);     

    audio.src = url;

    audio.oncanplaythrough = (event) => {

        var playedPromise = audio.play();

        if (playedPromise) {

            playedPromise.catch((e) => {

                console.log(e);

                if (e.name === 'NotAllowedError' || e.name === 'NotSupportedError') {

                    console.log(e.name);

                }

            }).then(() => {


            });

        }

    };

}


查看完整回答
反對 回復(fù) 2022-09-16
  • 1 回答
  • 0 關(guān)注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號