結果: コードロジックを実装するのが主な部分であり、具体的なページ構造を一つ一つ紹介することはありません。 Vue部分: cnpm インストール recorderx --save または npm インストール recorderx --save 特定のコンポーネントに導入 <スクリプト> 「axios」からaxiosをインポートします。 輸入 { トースト } から "vant" へ; Recorderxをインポートします。{ エンコードタイプ } から "recorderx"; 定数rc = 新しいレコーダーx(); エクスポートデフォルト{ データ(){ 戻る { 開始時刻:null、 終了時間:null } }, 方法:{ //音声録音recordingVoice() { // that.news_img = !that.news_img rc.start() .then(() => { this.startime = 新しい Date(); }) .catch(エラー => { alert("マイクを取得できませんでした"); }); }, //音声を送信する async sendVoice() { rc.一時停止(); this.endtime = 新しい日付(); wav = rc.getRecord({ エンコード先: ENCODE_TYPE.WAV、 圧縮可能: true }); voiceTime = Math.ceil((this.endtime - this.starttime) / 1000); とします。 フォームデータを作成します。 formData.append("chatVoice", wav, Date.parse(new Date()) + ".wav"); formData.append("音声時間", 音声時間); ヘッダーを{ ヘッダー: { 「コンテンツタイプ」: 「マルチパート/フォームデータ」 } }; アクシオス .post("/api/uploadChatVoice", フォームデータ, ヘッダー) .then(res => { //コンソール.log(res) (res.data.status === 2)の場合{ rcをクリアします。 chatVoiceMsg を res.data.chatVoiceMsg とします。 } } }); }, //オーディオを再生する playChatVoice(audio) { audioUrl を audio とします。 if(オーディオURL){ audioExample を新しい Audio() に追加します。 audioExample.src = audioUrl; //再生したいオーディオアドレス audioExample.play(); }それ以外{ Toast('音声アドレスが破棄されました'); } }, } }; </スクリプト> ノード部分: cnpm マルチパーティをインストール --save 定数 express = require('express'); 定数ルーター = express.Router(); マルチパーティは必須です。 定数NET_URL = 'http://127.0.0.1:3000/'; router.post('/uploadChatVoice', (req, res, next) => { フォームを新しい multiparty.Form() にします。 フォーム.uploadDir = 'chatVoiceUpload'; form.parse(req, (err, フィールド, ファイル) => { console.log(ファイル、フィールド) chatVoiceUrl = NET_URL + files.chatVoice[0].path.replace(/\\/g, "/"); とします。 chatVoiceTime = fields.voiceTime[0]とします コンソールログ(チャットボイスURL) チャットボイスURLの場合 res.json({ ステータス: 2, チャットボイスメッセージ: { チャットボイスタイム、 チャットボイスURL、 } }) } それ以外 { res.json({ ステータス: 1, チャットボイスメッセージ: { チャットボイスタイム: "", チャットボイスURL: "" } }) } //console.log(ファイル) }) }) app.jsで音声ファイルのパスを定義する app.use('/chatVoiceUpload', express.static('chatVoiceUpload')); Vue+node によるオーディオ録音・再生機能の実現についての記事はこれで終わりです。Vue オーディオ録音・再生に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL 5.7.18 無料インストール版ウィンドウ設定方法
>>: Docker で Spring-boot プロジェクトをデプロイするためのサンプル コード
<meta name="viewport" content="w...
目次リストレンダリングキーの原理と機能主要原則の分析キーの役割要約するリストレンダリングキーの原理と...
1. キャッシュ - クエリキャッシュ次の図は、MySQL 公式サイトから提供されています: MyS...
この記事では、参考までに、シンプルなショッピングカートケースを実装するためのVueの具体的なコードを...
目次Vue.jsにおける属性とプロパティ値および関連する処理として属性とプロパティの概念属性とプロパ...
目次1. MySQLでよく使われる文字列関数2. 数値関数3. 日付と時刻の機能4. プロセス機能5...
HTML は、World Wide Web 上で公開するために使用されるハイブリッド言語です。 XH...
問題を見つけるコンテンツをリストで表示すると、リスト内のコンテンツの数は多いかもしれませんが、ユーザ...
目次UIデザインEcharts の例の効果序文サンプルコード最終結果UIデザイン Echarts の...
目次リアクトフック序文なぜフックなのか?クラス関数クラスとフックの比較フックはコンポーネントの状態を...
1. mysqlにログインします。 mysql -u ルート -h 127.0.0.1 -p 2. ...
HTMLでCSSを定義するには、埋め込み、リンク、インラインの3つの方法が一般的に使用されます。 1...
ここでは Ubuntu 16.04 システムを使用しています。 dockerを使用したインストールh...
HTML ボタン自体を中央に配置するにはどうすればよいでしょうか? このアイデアは簡単に見つかります...