Ich bin ein Anfänger mit Programmierung so nüchtern mit mir. Ich versuche, alle für die Audiokomprimierung möglichen Codecs in einem Kombinationsfeld aufzulisten. NAudio hat Quellcode und eine Demo-Anwendung, die ich in meiner Formularanwendung nachzuahmen versuche. Wenn jemand mir helfen kann, ist ihr Quellcode here.C# NAudio Bibliothek, Cant List Codecs in Combo-Box
So haben sie etwa 7 andere .cs-Dateien in ihrem Projekt, die den Codecs ähnelt sie verwenden, so dass ich sie alle in mein Projekt kopiert. Ich kopierte dann alle relevanten Code für die Auflistung in einer Combo-Box. Keine Fehler so weit oder irgendetwas so ich es laufen lasse und es stoppt, da der Wert von jedem Codec Null zu sein scheint (bekannt gegeben unter dem Code).
Hier ist mein Code so weit:
var sorted = from codec in codecs
where codec.IsAvailable
orderby codec.BitsPerSecond ascending
select codec;
als der Wert null sein kann:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using NAudio.Wave;
using System.Net.Sockets;
using System.Threading;
using System.Net;
using System.ComponentModel.Composition;
using NAudioDemo.NetworkChatDemo;
namespace NAudio_VoIP_UDP
{
public partial class Form1 : Form
{
[ImportMany(typeof(INetworkChatCodec))]
public IEnumerable<INetworkChatCodec> Codecs { get; set; }
public Form1()
{
InitializeComponent();
PopulateCodecsCombo(Codecs);
}
private void PopulateCodecsCombo(IEnumerable<INetworkChatCodec> codecs)
{
var sorted = from codec in codecs
where codec.IsAvailable
orderby codec.BitsPerSecond ascending
select codec;
foreach (var codec in sorted)
{
string bitRate = codec.BitsPerSecond == -1 ? "VBR" : String.Format("{0:0.#}kbps", codec.BitsPerSecond/1000.0);
string text = String.Format("{0} ({1})", codec.Name, bitRate);
comboBoxCodecs.Items.Add(new CodecComboItem { Text = text, Codec = codec });
}
comboBoxCodecs.SelectedIndex = 0;
}
class CodecComboItem
{
public string Text { get; set; }
public INetworkChatCodec Codec { get; set; }
public override string ToString()
{
return Text;
}
}
}
}
aber dann, wenn ich den Code ausführen, hier hält.
Unten ist ein Bild meiner Lösung Explorer, wo Sie alle Codecs i hinzugefügt sehen kann und was in dem Kombinationsfeld werden soll gezeigt:
Wieder mit mir bitte entblößen als Anfänger im, , alle Hilfe wird geschätzt