国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
JavaScriptを使用して、記録されたブロブストリームを分割し、5秒のWAVファイルを生成します
ホームページ ウェブフロントエンド jsチュートリアル 録音されたブロブストリームをJavaScriptを使用して複數(shù)の5秒のWAVファイルに分割し、正常に再生することを確認(rèn)するにはどうすればよいですか?

録音されたブロブストリームをJavaScriptを使用して複數(shù)の5秒のWAVファイルに分割し、正常に再生することを確認(rèn)するにはどうすればよいですか?

Apr 04, 2025 pm 02:39 PM
nodejs ブラウザ ai

JavaScriptを使用して、記録されたブロブストリームを分割し、5秒のWAVファイルを生成します

React-MICを使用して記録するとき、私は要件に遭遇しました。記録されたブロブストリームを複數(shù)の5秒のWAVファイルに分割する必要があります。ただし、試した後、最初のスプリットWAVファイルのみを正常に再生できることがわかり、殘りのファイルが破損するように促されます。

この要件をフロントエンドで実裝する場(chǎng)合、主に2つの課題に直面しています。1つはブロブストリームを正しくセグメント化する方法です。もう1つは、各セグメント化されたクリップがWAVファイルを正しく生成して再生できるようにする方法です。以下はコードの例とソリューションです。

 「React」からReact、{useref、useState}をインポート
「ReactMicStopeVent}」から「ReactMic、ReactMicStopeVent}」
「antd」から{button}をインポートします

const audiorecorder =()=> {
    const [record、setRecord] = uesestate(false)
    const resref = useref <blob>([])
    const audioChunkSref = useref <blob>([])
    const intervalref = useref <nodejs.timer null>(null)
    const firstblob = useref <blob>(未定義)

    const createwavheader =(numchannels、samplerate、bytelength)=> {
        const header = new ArrayBuffer(44);
        const View = new DataView(Header);

        view.setuint32(0、1380533830、false); //「リフ」
        view.setuint32(4、bytelength 36、false);
        view.setuint32(8、1718449184、false); //「波」
        view.setuint32(12、1684108385、false); // "fmt"
        view.setuint32(16、16、true); // PCMの場(chǎng)合16
        view.setuint16(20、1、true); // PCM
        view.setuint16(22、numchannels、true);
        view.setuint32(24、samplerate、true);
        view.setuint32(28、samplerate * numchannels * 2、true);
        view.setuint16(32、numchannels * 2、true);
        view.setuint16(34、16、true); // 16ビット
        view.setuint32(36、1684108385、false); // "データ"
        view.setuint32(40、bytelength、true);

        ヘッダーを返します。
    };

    const savefile = async()=> {
        const chunkslist = resref.current;
        for(i = 0; i <chunkslist.length i const audiobuffer="new" uint8array chunkslist .arraybuffer header="createwavheader(1、44100、audiobuffer.length);" wavblob="new" blob url="url.createobjecturl(wavblob);" a="document.createelement(" a.href="url;" a.download="`記録$" .wav a.click url.revokeobjecturl startrecording="()="> {
        setRecord(true)
        AudioChunkSref.Current = [] //以前の録音データをクリア//録音intervalref.current = setInterval(()=> {を分割する
            const curblob = new blob(audiochunksref.current、{type: 'audio/wav'})
            const startindex = audiochunksref.current.indexof(firstblob.current as blob)
            const blob = curblob.slice(startindex === -1?0:startindex、 'audio/wav')
            firstblob.current = audiochunksref.current.at(-1)
            //現(xiàn)在の記録データコンソールを処理します。log( '現(xiàn)在の記録データのセグメント:'、blob)
            resref.current.push(blob)
        }、5000)
    }

    const stopRecording =()=> {
        setRecord(false)
        intervalref.current && clearinterval(intervalref.current)//クリアタイマー}

    const ondata =(recordedblob:blob)=> {
        audiochunksref.current.push(recordedblob)//録音データを保存}

    const onstop =(RecordedBlob:ReactMicStopeVent)=> {
        console.log( '記録完了:'、recordedblob)
    }

    const savefile1 =()=> {
        const chunkslist = resref.current
        chunkslist.map(async(v、i)=> {
            const filename = 'aaa.wav'
            const file:file = new file([v]、filename、{type: 'audio/wav'})
            const filesize = file.size

            console.log( 'filesize'、filesize)
            //ダウンロードリンクconst url = url.createobjecturl(file)を作成する
            const a = document.createelement( 'a')
            A.href = url
            a.download = `recording $ {i} .wav` //ダウンロードファイルの名前を設(shè)定するa.click()//トリガーダウンロード// url resource url.revokeobjecturl(url)をリリースします
        })
    }

    const savefinalresult =()=> {
        const filename = 'aaa.wav'
        const file:file = new file(audiochunksref.current、filename、{type: 'audio/wav'})
        const filesize = file.size

        console.log( 'filesize'、filesize)
        //ダウンロードリンクconst url = url.createobjecturl(file)を作成する
        const a = document.createelement( 'a')
        A.href = url
        A.download = `録音$ {date.now()}。wav`//ダウンロードファイルの名前を設(shè)定するa.click()//トリガーダウンロード// url resource url.revokeobjecturl(url)をリリースします
    }

    戻る (
        <div>
            <reactmic record="{record}" onstop="{OnStop}" ondata="{OnData}" mimetype="Audio /Wav"></reactmic>
            <button onclick="{startrecording}">録音を開始</button>
            <button onclick="{stopRecording}">録音を停止</button>
            <button onclick="{savefile}">ダウンロード</button>
            <button onclick="{savefinalresult}"> final </button>をダウンロードします
        </div>
    ))
}

デフォルトのaudiorecorderをエクスポートします</chunkslist.length></blob></nodejs.timer></blob></blob>

ブロブストリームを分割してWAVファイルを生成しようとする過程で、WAVヘッダー情報(bào)を手動(dòng)で追加しても問題は解決しないことがわかりました。その理由は、WAVファイルの構(gòu)造が比較的厳格であるためです。セグメンテーション後にヘッダー情報(bào)が正しく追加されていない場(chǎng)合、ファイルが破損する可能性があります。

この問題を解決するための提案の1つは、ブラウザで実行できるオーディオおよびビデオ?jiǎng)I理のライブラリであるFFMPEGのWASMバージョンを使用することです。これにより、オーディオを簡(jiǎn)単にセグメント化して、正しいWAVファイル形式を生成できます。 FFMPEG.WASMプロジェクトを使用してこの関數(shù)を?qū)g裝することを検討できます。

以上が録音されたブロブストリームをJavaScriptを使用して複數(shù)の5秒のWAVファイルに分割し、正常に再生することを確認(rèn)するにはどうすればよいですか?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

チェーン上の資金の流れが暴露されています:賢いお金でどのような新しいトークンが賭けているのですか? チェーン上の資金の流れが暴露されています:賢いお金でどのような新しいトークンが賭けているのですか? Jul 16, 2025 am 10:15 AM

普通の投資家は、高利益の住所である「スマートマネー」を追跡することで潛在的なトークンを発見することができ、その傾向に注意を払うと、主要な指標(biāo)を提供できます。 1.ナンセンやアーカムインテリジェンスなどのツールを使用して、チェーン上のデータを分析して、スマートマネーの購入と保有を表示します。 2。砂丘分析を使用して、コミュニティが作成したダッシュボードを取得して、資金の流れを監(jiān)視します。 3. LookonChainなどのプラットフォームをフォローして、リアルタイムインテリジェンスを取得します。最近、Cangming Moneyは、LRTトラック、Depinプロジェクト、モジュラーエコシステム、RWAプロトコルを再編成することを計(jì)畫しています。たとえば、特定のLRTプロトコルは大量の早期預(yù)金を取得し、特定のDepinプロジェクトが継続的に蓄積され、特定のゲームパブリックチェーンが業(yè)界財(cái)務(wù)省によってサポートされており、特定のRWAプロトコルは機(jī)関を魅了しました。

分散化された安定コイン使用シナリオのstablecoin dai_分析に適した人 分散化された安定コイン使用シナリオのstablecoin dai_分析に適した人 Jul 15, 2025 pm 11:27 PM

DAIは、地方分権化の概念を重視し、Defiエコシステムに積極的に參加し、クロスチェーン資産の流動(dòng)性を必要とし、資産の透明性と自律性を追求するユーザーに適しています。 1.分散化コンセプトのサポーターは、スマートコントラクトとコミュニティガバナンスを信頼しています。 2。DEFIユーザーは、貸付、誓約、流動(dòng)性採掘に使用できます。 3.クロスチェーンユーザーは、マルチチェーン資産の柔軟な転送を?qū)g現(xiàn)できます。 4。ガバナンス參加者は、投票を通じてシステムの決定に影響を與えることができます。その主なシナリオには、分散型貸出、資産ヘッジ、流動(dòng)性採掘、國境を越えた支払い、コミュニティガバナンスが含まれます。同時(shí)に、システムのリスク、住宅ローンの変動(dòng)リスク、技術(shù)的なしきい値の問題に注意を払う必要があります。

ビットコイン、チェーンリンク、およびRWA共鳴の上昇:暗號(hào)市場(chǎng)は制度的論理に入りますか? ビットコイン、チェーンリンク、およびRWA共鳴の上昇:暗號(hào)市場(chǎng)は制度的論理に入りますか? Jul 16, 2025 am 10:03 AM

ビットコイン、チェーンリンク、RWAの協(xié)調(diào)的な臺(tái)頭は、暗號(hào)市場(chǎng)における制度的な物語の支配へのシフトを示しています。ビットコインは、機(jī)関によって割り當(dāng)てられたマクロヘッジ資産として、市場(chǎng)の安定した基盤を提供します。 ChainLinkは、Oracleとクロスチェーンテクノロジーを通じて、現(xiàn)実とデジタルの世界をつなぐ重要な橋になりました。 RWAは、従來の資本參入のコンプライアンスパスを提供します。 3つは、組織の完全な論理的閉ループを共同で構(gòu)築しました。1)BTCを割り當(dāng)ててバランスシートを安定させます。 2)RWAを通じてオンチェーン資産管理を拡大する。 3)ChainLinkに依存して、基礎(chǔ)となるインフラストラクチャを構(gòu)築します。これは、市場(chǎng)が実際の需要によって推進(jìn)された新しい段階に入ったことを示しています。

偽のアルトコインを識(shí)別する方法は?暗號(hào)通貨詐欺を避けるためにあなたに教えてください 偽のアルトコインを識(shí)別する方法は?暗號(hào)通貨詐欺を避けるためにあなたに教えてください Jul 15, 2025 pm 10:36 PM

偽のアルトコインを特定するには、6つの側(cè)面から開始する必要があります。 1.ホワイトペーパー、公式Webサイト、コードオープンソースアドレス、チームの透明性など、資料とプロジェクトの背景を確認(rèn)して確認(rèn)します。 2。オンラインプラットフォームを観察し、主流の交換を優(yōu)先します。 3。資金のtrapを避けるために、高いリターンと人々を引くモードに注意してください。 4.契約コードとトークンメカニズムを分析して、悪意のある機(jī)能があるかどうかを確認(rèn)します。 5。コミュニティとメディアの運(yùn)用を確認(rèn)して、誤った人気を特定します。 6.推奨事項(xiàng)を信じていない、プロの財(cái)布の使用など、実用的な反燃焼提案に従ってください。上記の手順は、詐欺を効果的に回避し、資産のセキュリティを保護(hù)することができます。

どちらが良いのか、DAIまたはUSDC?_は長期保有に適していますか? どちらが良いのか、DAIまたはUSDC?_は長期保有に適していますか? Jul 15, 2025 pm 11:18 PM

DAIは長期保有に適していますか?答えは、個(gè)々のニーズとリスクの好みに依存します。 1。DAIは分散型の安定コインであり、検閲の抵抗と透明性を追求するユーザーに適した、暗號(hào)資産の過度の擔(dān)保によって生成されます。 2。その安定性はUSDCよりもわずかに劣り、副次的な変動(dòng)のためにわずかな學(xué)部を経験する可能性があります。 3. Defi Ecosystemの融資、誓約、ガバナンスのシナリオに適用できます。 4. Makerdaoシステムのアップグレードとガバナンスのリスクに注意してください。高い安定性とコンプライアンス保証を追求する場(chǎng)合は、USDCを選択することをお?jiǎng)幛幛筏蓼?。分散化の概念を重視し、Defiアプリケーションに積極的に參加する場(chǎng)合、DAIには長期的な価値があります。 2つの組み合わせは、資産配分のセキュリティと柔軟性を向上させることもできます。

イーサリアムスマートコントラクトの役割 イーサリアムスマートコントラクトの役割 Jul 15, 2025 pm 09:18 PM

Ethereum Smart Contractの役割は、分散化され、自動(dòng)化され、透明なプロトコルの実行を?qū)g現(xiàn)することです。そのコア関數(shù)には、次のものが含まれます。1。DAPPのコアロジックレイヤーとして、トークン発行、DEFI、NFT、およびその他の機(jī)能をサポートします。 2.人間の介入と詐欺のリスクを減らすために、コードを介して契約を自動(dòng)的に実行します。 3.ユーザーが貸付や取引などの金融業(yè)務(wù)を直接実行できるように、Defi Ecosystemを構(gòu)築します。 4.デジタル資産を作成および管理して、一意性と検証可能性を確保します。 5.サプライチェーンの透明性とセキュリティとアイデンティティの検証を改善する。 6. DAOガバナンスをサポートし、分散化された意思決定を?qū)g現(xiàn)します。

ファイルコイン、レンダリング、およびAIストレージの事前販売は加熱されています。Web3インフラストラクチャの爆発ポイントは來ていますか? ファイルコイン、レンダリング、およびAIストレージの事前販売は加熱されています。Web3インフラストラクチャの爆発ポイントは來ていますか? Jul 16, 2025 am 09:51 AM

はい、AIの需要が熱くなるにつれて、Web3インフラストラクチャは期待を爆発させています。 FileCoinは、AIデータ処理とトレーニングをサポートする「データオーバーデータ」計(jì)畫を通じてコンピューティングパワーを統(tǒng)合します。 Render Networkは、AIGCグラフレンダリングを提供するために分散GPUコンピューティングパワーを提供します。 Arweaveは、永続的なストレージ特性を備えたAIモデルの重みとデータトレーサビリティをサポートしています。 3つは、テクノロジーのアップグレードと生態(tài)學(xué)的資本促進(jìn)を組み合わせており、AIの端から基礎(chǔ)となるコアに移行しています。

Stablecoin USDはいくらですか Stablecoin USDはいくらですか Jul 15, 2025 pm 09:57 PM

通常、stable巖の価値は米ドル1:1に固定されますが、市場(chǎng)の需要と供給、投資家の信頼、準(zhǔn)備資産などの要因により、わずかに変動(dòng)します。たとえば、2018年にUSDTは0.87ドルに低下し、Silicon Valley Banking CrisisのためにUSDCは2023年に約0.87ドルに低下しました。スタブコインの固定メカニズムには、主に次のものが含まれます。 2。他の暗號(hào)通貨を過剰に擔(dān)保することにより安定性を維持する暗號(hào)通貨住宅ローンタイプ(DAIなど)。 3。アルゴリズムのstablecoins(USTなど)。これは、供給を調(diào)整するためにアルゴリズムに依存していますが、より高いリスクがあります。一般的な取引プラットフォームの推奨事項(xiàng)には、次のものが含まれます。1。Binance、豊富な取引製品の提供、強(qiáng)力な流動(dòng)性。 2。OKX、

See all articles