2 Stimmen

Wie spielt man den Sound nur im linken Kanal des Kopfhörers und nur im rechten Kanal des Kopfhörers in C#?

Ich habe eine Anforderung, den Ton (.wav-Datei) nur im linken Kanal des Kopfhörers abzuspielen, und eine andere Datei nur im rechten Kanal des Kopfhörers abzuspielen. Ich bin neu in c#, bitte helfen Sie mir, dieses Problem zu lösen.

2voto

Eliran Pe'er Punkte 2599

Ich glaube nicht, dass WPF das allein bewerkstelligen kann, aber du könntest NAudio ausprobieren.

1voto

Adds Punkte 541
 var input2 = new Mp3FileReader(@"C:\Users\Public\Music\Sample Music\Kalimba.mp3"); 
var input1 = new Mp3FileReader(@"C:\Users\Public\Music\Sample Music\Maid with the Flaxen Hair.mp3"); 
MultiplexingWaveProvider waveProvider = new MultiplexingWaveProvider(new IWaveProvider[] { input1, input2 }, 2);
waveProvider.ConnectInputToOutput(1, 0);
waveProvider.ConnectInputToOutput(3, 1);
WaveOut wave = new WaveOut(); 
wave.Init(waveProvider); 
wave.Play(); 

Ich habe gerade die folgenden Zeilen zum obigen Code hinzugefügt und es funktioniert mit 2 Kanälen

 waveProvider.ConnectInputToOutput(1, 0);
waveProvider.ConnectInputToOutput(3, 1);

und entfernt

 waveProvider.ConnectInputToOutput(1, 1);

0voto

woutervs Punkte 1480

Dieser Artikel auf dem Code-Projekt zeigt einen Weg, um Audio zu visualisieren. Wenn Sie Audio aktiv visualisieren können, werden Sie verstehen, dass Ihre übliche Stereowave-Datei zwei Kanäle enthält (einen linken und einen rechten Kanal). Mit diesen Informationen, wie man es visualisieren kann, können Sie den Stream leicht anpassen, um den linken Kanal zu zerstören (zum Beispiel Nullen in den linken Stream/rechten Stream setzen). Und so würde, wenn Sie es auf herkömmliche Weise abspielen würden, danach die Musik nur im linken oder im rechten Ohr abgespielt werden.

Das oben Genannte ist der einfache Teil, wenn Sie eine Stereodatei mit zwei gleichen Kanälen haben. Es gibt auch den Fall, dass Ihre Stereodatei verschiedene Kanäle hat (zum Beispiel eine Gitarre im linken Ohr und ein Schlagzeug im rechten Ohr). In diesem Fall müssen Sie zwei Kanäle zu einem Kanal zusammenführen, doppelte Informationen finden und schließlich den anderen Kanal zerstören, den Sie nicht verwenden möchten.

Die dritte Möglichkeit ist, dass Ihre Audiodatei mono ist und daher nur einen Kanal hat. Normalerweise dupliziert Ihr Computer automatisch den Kanal aus einer Mono-Datei in eine Stereodatei. So wird es auf beiden Ohren/Lautsprechern abgespielt. Daher werden wir niemals hören, dass die Datei mono ist. Wenn Sie es jedoch in der Programmierung wünschen, auf nur einem Ohr/Kanal abzuspielen, müssten Sie es manuell in eine Stereodatei konvertieren (indem Sie einen leeren Kanal hinzufügen). Und dann hätten Sie wieder Sound auf nur einem Ohr/Lautsprecher.

Hoffentlich hilft das.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X