im un débutant avec la programmation si nue avec moi. Im essayant de lister tous les codecs possibles pour la compression audio dans une zone de liste déroulante. NAudio a du code source et une application de démonstration qui im im essayant d'émuler dans mon application de formulaire. Si quelqu'un peut m'aider, leur code source est here.Bibliothèque C# NAudio, codecs de liste Cant dans la zone de liste déroulante
Donc, ils ont environ 7 autres fichiers .cs dans leur projet qui ressemble aux codecs qu'ils utilisent donc je les ai tous copiés dans mon projet. J'ai alors copié tout le code pertinent (de ce que je vois) pour les énumérer dans une zone de liste déroulante. Aucune erreur jusqu'à présent ou quoi que ce soit donc je l'exécute et il s'arrête car la valeur de chaque codec semble être nulle (posté sous le code).
Voici mon code à ce jour:
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;
}
}
}
}
mais quand je lance le code, il arrête ici:
var sorted = from codec in codecs
where codec.IsAvailable
orderby codec.BitsPerSecond ascending
select codec;
que la valeur ne peut être nulle.
est ci-dessous une image de mon explorateur de solution où vous pouvez voir tous les codecs i ajoutés et ce qui doit être indiqué dans la zone de liste déroulante:
Encore une fois, s'il vous plaît nu avec moi comme im un débutant , toute l'aide est appriciée