使用c#.net播放立体声作为不同声道的单声道声音

时间:2010-04-16 07:01:05

标签: c# audio avaudioplayer

我想使用c#.net

以下列方式播放立体声

这是一个立体声音轨:可以只听到L或只听到R声道或两者 同时通道。如果您只在通道上播放,则将音频输出为单声道 你可以听到扬声器或耳机中的一个声道

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:2)

Alvas.Audio中,您需要使用AudioCompressionManager.MergeStereo和AudioCompressionManager.SplitStereo方法

见下面的伪代码

    AudioCompressionManager.SplitStereo(stereo, left, right);

    PlayerEx plex = new PlayexEx(); 
    plex.Done += new PlayerEx.DoneEventHandler(plex_Done);   
    plex.OpenPlayer(format);      
    plex.StartPlay();

    enum State {    Left,    Right,    Both }

    void plex_Done(object sender, DoneEventArgs e) {    
      byte[] left50ms = Cut(left, 50);    
      byte[] right50ms = Cut(right, 50);    
      switch (State)    {
        case State.Left:
          plex.AddData(AudioCompressionManager.MergeStereo(left50ms, left50ms));
        break;
        case State.Right:
          plex.AddData(AudioCompressionManager.MergeStereo(right50ms, right50ms));
        break;
        case State.Both:
          plex.AddData(AudioCompressionManager.MergeStereo(left50ms, right50ms));
        break; 
}

答案 1 :(得分:0)

我找到了解决方案。

我找到了一个名为zLib的库。你可以使用这个库来播放音频,混合频道等等。这个库非常适用于声音相关的工作,并用VC ++,C#.Net,VB.Net等多种语言编写。转到下面的链接:

zLib for Sound Work

这是我为声音创建的最好的图书馆。