2

ソケットを使用して、オーディオ ファイルの内容をネットワーク経由で別のシステムに送信したいと考えています。どちらのシステムも Windows オペレーティング システムで実行されます。別のノードに簡単に送信できるように、オーディオ コンテンツを C++ 配列または Stringstream データ型に格納する方法に関するチュートリアルはありますか。

基本的に、オーディオ ファイルからデータ バイトを抽出する方法を知りたいです。

4

2 に答える 2

3

最も簡単な方法は、単純にデータをバイト単位で送信することです。オーディオ ファイルから開始する場合は、他のバイナリ ファイルと同じように次のように開きますfile = fopen(filename, "rb");(ファイル名はオーディオ ファイルの名前です)。次に、ループに入り、ファイルの最後に到達するまでバイトのチャンクを読み取ります。bytes_read = fread(buffer, sizeof(char), read_size, file);wherebufferはおそらくchar少なくとも size の配列read_size、たとえば 1024のようなものを使用するだけです。各freadの後、ネットワークに呼び出しを送信させることができます。または、最初にファイル全体を読み取ってから、チャンクごとに送信することもできます。あなたの電話。いずれにせよ、ファイルの終わりに到達したら、終わりに到達したことを示す何らかのシグナルを送信します。受信システムはこれらのチャンクを取得して呼び出す必要がありますfwrite新しいオーディオ ファイルを作成します。入ってくるたびに各チャンクを追加するか、最後に到達するまですべてをバッファリングしてからすべてを書き出すことができます。

于 2013-09-04T13:33:30.970 に答える