18

私は現在、ユーザーが音声メモを録音して自分のアカウントに保存できるテストサイトを作成しようとしています。PHPまたはJavaScriptを使用してこれを行うための最良の方法は何ですか?

このプロセスで私が探しているステップは次のとおりです。

1)ユーザーが録音ボタンをクリックします。 2)記録シーケンスの開始。 3)シーケンスを停止します。4)ファイルに名前を付けてサーバーに送信します。

私の主なクエリは、音声を録音するためにユーザーのマイクと対話するメカニズムが必要な2番目のステップに焦点を当てています。私はまだWeb開発自体に不慣れであり、JavaScriptを使用して音声録音を呼び出す方法がわかりません。

Googleで検索したところ、StackOverflowで同様の問題に対処するリンクがいくつか見つかりましたが、回答は役に立ちませんでした。多くの解決策がFlashを指していますが、私はそれをできるだけ避けたいと思います。だから私の質問は、「JavaScriptを使用して音声を録音することは可能ですか?はいの場合、どのように?」に要約されます。

前もって感謝します。

4

3 に答える 3

10

HTML5 Audio APIはブラウザで広くサポートされていません。これは、Chromeで機能し、Firefoxでは最近ナイトリーに追加されたと思います...この段階ではブラウザプレフィックスが必要ですが、一般的なAPIは...

navigator.getUserMedia({audio: true}, function(stream) { /* do stuff */ });

つまり、webkitGetUserMediaChromeとmozGetUserMediaFirefoxの場合です。

現在のより一貫性のあるオプションは、FlashやJavaなどのブラウザプラグインを使用するか、ユーザーがインストールする必要のあるデスクトップクライアントを作成することです。

getUserMediaに関する関心のあるリソース:

次の質問がさらに役立つ場合があります。

フラッシュまたはJavaサーブレットを使用してマイクデータをブラウザからサーバーにアップロードするためのチュートリアル?

于 2012-08-29T13:13:12.173 に答える
3

ローカルMediaStreamをScriptProcessingNodeに接続するオーディオグラフを作成することにより、マイクから録音できるようになりました。

navigator.webkitGetUserMedia({video: true, audio: true}, function(stream) {
    var audioContext = new webkitAudioContext,
        mediaStreamSource = context.createMediaStreamSource(stream),
        processor = context.createJavaScriptNode(4096, 2, 2);

    processor.onaudioprocess = function(e) {
        // Process the audio data found in e.inputBuffer
    };

    mediaStreamSource.connect(processor);
    processor.connect(context.destination);
});

(Chromeベンダープレフィックスを使用)

これをWebsocketまたはプレーンXHRに接続して、チャンクをサーバーに送信し、サーバーで処理してオーディオファイルにすることができます。各チャネルをから変換する必要があります

公称範囲が-1->+1の非インターリーブIEEE32ビットリニアPCM

お好みのフォーマットに。

オーディオを録音し、それをwavファイルにエンコードし、それを(すべてクライアント側で)保存する同様の例は、次の場所にあります。

https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RecordRTC

AudioContextの詳細:

http://docs.webplatform.org/wiki/apis/webaudio/AudioContext

于 2013-02-27T04:09:46.017 に答える
1

HTML5オーディオ録音が到着するまでは、Flashとモバイルデバイスでのファイルアップロードを組み合わせたソリューションを組み合わせる必要があります。モバイルデバイスでは、ファイルアップロード画面には通常オーディオまたはビデオレコーダーがあるため、ユーザーはデバイスから直接録音できます。

デバイスのファイルアップロードにオーディオレコーダーがない場合は、ビデオレコーダーを使用してから、サーバーでビデオをMP3に変換する必要があります。それがrecordmp3online.comでそれを行う方法です。

于 2013-08-19T07:26:28.530 に答える