2

我想使用 c#.net 以下列方式播放立体声

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

提前感谢您的帮助

4

2 回答 2

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; 
}
于 2011-01-11T03:11:58.667 回答
0

我找到了解决方案。

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

zLib for Sound Work

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

于 2010-05-19T06:56:07.490 回答