
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.52] |
![]() |
|
Сообщ.
#1
,
|
|
|
Добрый день
Я хотел бы написать для своих нужд небольшой трекер, воспроизводящий звуковые файлы, которые добавлены в ресурс. Основная задача: заставить проигрываться из ресурса одновременно (параллельно) несколько звуковых файлов. Подходит ли PlaySound для этого? Ведь иногда нужно прекратить звучание одного звука, а другие чтоб продолжали играть. Есть ли у кого-то пример? Сейчас у меня так: internal class SoundModule { [Flags] public enum PlaySoundFlags : int { SND_SYNC = 0x0000, SND_ASYNC = 0x0001, SND_NODEFAULT = 0x0002, SND_MEMORY = 0x0004, SND_LOOP = 0x0008, SND_NOSTOP = 0x0010, SND_NOWAIT = 0x00002000, SND_ALIAS = 0x00010000, SND_ALIAS_ID = 0x00110000, SND_FILENAME = 0x00020000, SND_RESOURCE = 0x00040004 } [DllImport("Coredll")] public static extern int PlaySound(byte[] data, IntPtr hMod, PlaySoundFlags flags ); } ну и в самой форме: private void button1_Click(object sender, EventArgs e) { SoundModule.PlaySound(Project1.Properties.Resources.sound1, IntPtr.Zero, SoundModule.PlaySoundFlags.SND_RESOURCE | SoundModule.PlaySoundFlags.SND_ASYNC); } при этом файл sound1 подцеплен к ресурсу и в Resources.Designer.CS есть такой код: internal static byte[] sound1 { get { object obj = ResourceManager.GetObject("sound1", resourceCulture); return ((byte[])(obj)); } } Сейчас при нажатии на кнопку звук не проигрывается... Читал форум - кто-то предлагал код, который у меня отказался работать и я его закомментил (там stream возвращался null'евым) : //Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("Project1.sound1.wav"); //byte[] soundBytes = new byte[stream.Length]; //stream.Read(soundBytes, 0, (int)stream.Length); Прошу помощи Спасибо |
Сообщ.
#2
,
|
|
|
Какую версию Compact .NET Framework Вы используете?
|