2017-06-29 22 views
0

Mark Heathのブログに続いてNAudioのBufferedWaveProviderを使用してMp3ストリーミングを実装しようとしています。InvalidParameter calling waveOutOpen

私のストリーミングはすべて実装されていますが、「InvalidParameter calling waveOutOpen」というメッセージが表示されたMmExceptionが表示されます。

私はこの関連の質問を見た:InvalidParameter calling waveOutOpen MmExceptionを、ので、私は次のコードスニペットを使用してきたWAVEFORMATを見ていた。ここで

private WaveFormat CreateWaveFormat(Mp3Frame frame) 
{ 
    var numberOfChannels = frame.ChannelMode == ChannelMode.Mono ? 1 : 2; 
    return new Mp3WaveFormat(frame.SampleRate, numberOfChannels, frame.FrameLength, frame.BitRate); 
} 

が私のデバッガから取られ、私が手WAVEFORMATです:

-  sampleProvider.WaveFormat {MpegLayer3} NAudio.Wave.WaveFormat {NAudio.Wave.Mp3WaveFormat} 
    AverageBytesPerSecond 32000 int 
    BitsPerSample 0 int 
    BlockAlign 1 int 
    Channels 2 int 
    Encoding MpegLayer3 NAudio.Wave.WaveFormatEncoding 
    ExtraSize 12 int 
    SampleRate 48000 int 
    averageBytesPerSecond 32000 int 
    bitsPerSample 0 short 
    blockAlign 1 short 
    blockSize 768 ushort 
    channels 2 short 
    codecDelay 0 ushort 
    extraSize 12 short 
    flags PaddingIso NAudio.Wave.Mp3WaveFormatFlags 
    framesPerBlock 1 ushort 
    id Mpeg NAudio.Wave.Mp3WaveFormatId 
    sampleRate 48000 int 
    waveFormatTag MpegLayer3 NAudio.Wave.WaveFormatEncoding 
+  Static members 

これをすべてテストするには、テスト用Mp3ファイルをFileStreamにロードします。私は、全体の流れを読むためにMp3FileReaderを使用する場合WAVEFORMATはどうだったかを見ることにしました、そして興味深いことに、私は完全に異なるWAVEFORMATました:

-  format {16 bit PCM: 48kHz 2 channels} NAudio.Wave.WaveFormat 
    AverageBytesPerSecond 192000 int 
    BitsPerSample 16 int 
    BlockAlign 4 int 
    Channels 2 int 
    Encoding Pcm NAudio.Wave.WaveFormatEncoding 
    ExtraSize 0 int 
    SampleRate 48000 int 
    averageBytesPerSecond 192000 int 
    bitsPerSample 16 short 
    blockAlign 4 short 
    channels 2 short 
    extraSize 0 short 
    sampleRate 48000 int 
    waveFormatTag Pcm NAudio.Wave.WaveFormatEncoding 

を私は両方のケースでは、ストリームの最初の16バイトで見ていました、そしてそれらは同一であった。私が間違っているアイデアは?あるいは、WaveFormatsの違いが赤い鳴き声ですか?他に何か問題がありますか?

ありがとうございました!

答えて

1

私はこの問題を発見しました。問題は、私は、Mp3デコンプレッサーが提供するWaveFormatではなく、Mp3FrameからWaveFormatを使用していたことです。 WaveOutは、完全に圧縮解除されたオーディオのフォーマットを予期しています。

関連する問題