0

NAudio を使用して mp3 ファイルを波形画像に変換しています。このため、ファイル アップローダーを使用しています。

<input type="file" name="file" /> 

そのため、ユーザーは自分の mp3 ファイルを選択して、サーバーの特定の場所にウェーブ イメージをアップロードできます。「c:\media\cat\001\music.mp3」をハードコードすると、正常に動作します。ユーザーのアップロードに応じて変更するにはどうすればよいですか。

//here filePath should be "c:\media\cat\001\music.mp3"
using(Mp3FileReader reader = new Mp3FileReader(filePath)) {
      using(WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader)) {

        WaveFileWriter.CreateWaveFile(outputFile, pcmStream);
      }
    }

ファイルのフルパスを取得するための解決策を教えてください。ファイルのアップロードを通じてクライアントファイルのフルパスを取得できないことを知っているので、そのファイルを読み取る方法、上記のコードは WPF に適合します、MVC で行う方法は?

4

1 に答える 1

1

URLから読み取るソリューションを見つけたので、複数のファイルを読み取り/ストリームに渡すことができます。コードは次のとおりです

string filePath = "your mp3 url";

using(Stream ms = new MemoryStream()) {
    using(Stream stream = WebRequest.Create(filePath)
        .GetResponse().GetResponseStream()) {
      byte[] buffer = new byte[32768];
      int read;
      while((read = stream.Read(buffer, 0, buffer.Length)) > 0) {
        ms.Write(buffer, 0, read);
      }
    }

このコードは、url から mp3 ファイルをストリーミングし、mp3 を読み取ってメモリに保持します。

于 2012-07-06T10:04:20.953 に答える