Tone.js プレーヤーを動作させ、単一の wav ファイルを再生することができません
P粉231079976
2023-09-01 10:34:17
<p>無法让 Tone Player 播放任意のコンテンツ,これは我的简单 VueJs 代番号:</p>
<pre class="brush:php;toolbar:false;"><テンプレート>
<div>
<h1>Simple Tone.js デモ</h1>
<button style="背景色: cadetblue;パディング: 4px 10px;" @click="play">Play</button>
</div>
</テンプレート>
<スクリプト>
import * as Tone from "tone";
デフォルトのエクスポート {
データ() {
戻る {
プレイヤー: null、
};
}、
メソッド: {
非同期再生() {
試す {
console.log("Tone.js コンテキストの状態:", Tone.context.state);
if (Tone.context.state !== "実行中") {
Tone.start(); を待ちます。
console.log("オーディオコンテキストが開始されました");
}
this.player.start();
} キャッチ (エラー) {
console.error("再生中のエラー:", error.message, error);
}
}、
asyncInitializePlayer() {
console.log(Tone.context.state);
試す {
this.player = 新しい Tone.Player({
URL: "/sounds/rain.wav"、
ループ: true、
自動開始: false、
}).toDestination();
this.player.loaded;
} キャッチ (エラー) {
console.error("音声ファイルの読み込みエラー:", error);
}
console.log("オーディオ ファイルがロードされました"、this.player.loaded);
}、
}、
作成した() {
this.initializePlayer();
}、
};
</script></pre>
<p>私が現在ダウンロードされている音声は、正しい位置 sound/rain.wav に存在し、結果私がクロム中に入っている経路、浏览器能够正确打开它
http://localhost:5173/sounds/rain.wav
</p>
<p>実行プログラムの結果:</p>
<p>Tone.js を理解している人は我让播放器播放单个文件吗?我花了一整天的時間间為解决这个问题,甚至使用了 GPT4,但我遇到了同样的问题,播放器無法</p> 単一のファイルをブロードキャストします。
Player
コンストラクターは Promise を返しません。がオーディオのダウンロードを完了していないためにエラーが発生したと思われます。
Player
の準備ができるまで待ちたい場合は、
onload関数を渡す必要があります。これを Promise でラップすることで、
Playerの準備が整うまで待機するために使用できます。
リーリー