recordMP3 は、Web 録音、アップロード、再生機能を実装しています。
2022-02-24 08:35:32
<スパン http://blog.csdn.net/sweetsuzyhyf/article/details/50469881 より取得
<スパン パッケージのダウンロードはこちら: http://download.csdn NET /詳細/sweetsuzyhyf/9393053
ソースコードはすべてここにあります。
- <スパン <!DOCTYPE html >
- < html >
- < ヘッド >
- < メタ http-equiv = "Content-Type"。 内容 = "text/html; charset=utf-8"。 />
- < タイトル > Html5のWeb JavaScriptの録音MP3オーディオ </ タイトル >
- < メタ 文字セット = "utf-8"。 />
- <スパン </ ヘッド >
- < 本体 >
- < h1 > Html5のWeb JavaScriptの録音MP3オーディオ </ h1 >
- < ボタン オンクリック = <スパン "funStart(this);" イド = btnStart" 無効 > レコーディング </ ボタン >
- < ボタン オンクリック = <スパン "funStop(this);" イド = btnStop"。 使用不可 > 停止 <スパン </ ボタン >
- < ボタン オンクリック = <スパン "funUpload(this);" イド = "btnUpload"。 使用不可 > アップロード <スパン </ ボタン >
- < h4 > デバッグ情報です。 </ h4 >
- < ディブ イド = 録画リスト"録画リスト" > <スパン </ ディブ >
- < スクリプト src <スパン = "js/recordmp3.js"。 > </ スクリプト >
- < スクリプト >
- ヴァル レコーダー <スパン = <スパン 新しい MP3Recorder({.
- debug:trueを指定します。
- funOk: function () {
- btnStart.disabled = 虚偽 ;
- log('初期化成功');
- },
- funCancel: 関数 (msg) {...
- log(msg)を実行します。
- レコーダー <スパン = ヌル ;
- }
- });
- var mp3Blob;
- <スパン
- 関数funStart(button) {
- btnStart.disabled = 真 ;
- btnStop.disabled = 虚偽 ;
- btnUpload.disabled。 = 真 ;
- log('録画が始まりました...') ;
- recorder.start()を実行します。
- }
- <スパン function funStop(button) {
- recorder.stop()を実行します。
- btnStart.disabled = 虚偽 ;
- btnStop.disabled = <スパン 真 ;
- btnUpload.disabled。 = 虚偽 ;
- log('End of recording, MP3 export in progress...') ;
- レコーダー.getMp3Blob(関数 (blob) {)
- log('MP3エクスポート成功');
- <スパン mp3Blob <スパン = ブロブ ;
- ヴァル url = <スパン URL .createObjectURL(mp3Blob);
- ヴァル ディブ = ドキュメント .createElement('div');
- ヴァル オー = ドキュメント .createElement('audio');
- ヴァル hf <スパン = ドキュメント .createElement('a');
- <スパン au.コントロールズ = <スパン 真 ;
- au.src = <スパン url ;
- hf.href = <スパン url ;
- hf.ダウンロード <スパン = <スパン 新しい Date().toISOString() + '.mp3';
- hf.innerHTML = hf <スパン .ダウンロード
- div.appendChild(au)。
- div.appendChild(hf)。
- recordingslist.appendChild(div)。
- });
- }
- 関数log(str) {
- recordingslist.innerHTML += str + '. < ブリュ /> ';
- }
- function funUpload() {
- VAR fd = <スパン 新しい FormData()です。
- ヴァル mp3名 = encodeURIComponent ('audio_recording_' + new Date().getTime() + '.mp3') となります。
- fd.append('mp3Name',mp3Name)を実行します。
- fd.append('file', mp3Blob);
- ヴァル xhr = <スパン 新しい XMLHttpRequest()を使用します。
- xhr.onreadystatechange = <スパン 機能 <スパン () {
- <スパン もし xhr.readyState == 4 && xhr.status == 200) {
- recordingslist.innerHTML += 'アップロードに成功しました。 < a ホールド = "' + xhr.responseText + '" ターゲット = "_blank"。 > <スパン ' + mp3Name + ' <スパン </ a > ';
- }
- };
- xhr.open('POST', 'upload.ashx')。
- xhr.send(fd)を実行します。
- }
- </ スクリプト >
- <スパン </ 本体 >
- <スパン </ html >
[javascript] を使用します。
表示プレーン
関連
-
よくある例外の問題と解決策
-
ファイルをマージしていないため、プルできません。
-
コンパイラーエラーです。ISO C++は型がない***の宣言を禁じています。
-
データベースエラーについて ERROR: 初期通信パケットの読み込み」でMySQLサーバに接続できなくなった
-
eclipseでプロジェクトを追加する すでにワークスペースに存在するため、インポートできないプロジェクトがある
-
init()でエラーが発生しました。ログはすでに使用中です エラー解決
-
MySQL エラー 2005 - 不明な MySQL サーバーホスト 'localhost' (0) 原因と解決策
-
ハウジング・エンド ボブ・オストヴィッチ
-
STM32でのビットバンド動作
-
ASP.NET MVCでsessionIDの解が変わり続ける。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
zsh: コマンドが見つからない: nvm 解決策
-
null のプロパティ 'style' を読み取ることができない 問題
-
デバッグアサーションに失敗しました
-
左オペランドはl値でなければならない(左オペランドは代入可能な変数でなければならない)。
-
Android開発におけるActivityからFragmentへのデータ受け渡しの2つの方法について。
-
C++プログラミングの質問 面接の質問
-
(2019.8.16に解決) urllib.error.URLError: urlopen エラー [Errno 11001] getaddrinfo に失敗しました。
-
Python で 'str' と 'int' のインスタンス間でエラー '>=' がサポートされていない
-
json文字列のダブルクォートが&quotになるのですが、どうすれば解決できますか?
-
ApiModelProperty の使用方法