Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> System.Media, Одновременное воспроизведение 
V
    Опции темы
nikitao
Дата 26.5.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 4
Всего: 26



Можно ли одновременно воспроизводить несколько файлов ибо если написать так
Код

 SoundPlayer x = new SoundPlayer(@"C:\1.wav");
 SoundPlayer x2 = new SoundPlayer(@"C:\2.wav");
 x.Play();
 Сonsole.ReadKey();
 x2.Play();
 Сonsole.ReadKey();
 x2.Stop();
 x.Stop();

 Проигрывание файла 1/wav прекращается при запуске проигрывния файла 2.wav  smile 


ЗЫ Зарание спасибо.
 


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Exception
Дата 26.5.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Хм, а как одновременно два файла звучат? Я не представляю.

Добавлено @ 19:26 
Думаю, то, что тебе нужно, реализовывается через DirectSound. 
PM   Вверх
nikitao
Дата 26.5.2006, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 4
Всего: 26



Exception,  смотри:
Первый - фоновая музыка
Второй - звук при нажатии на кнопку.

Ясно, что принажатии на кнопку я не хочу, чтобы музыка прерывалась. smile 
 


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Exception
Дата 26.5.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Ну вот это вроде DirectSound умеет. 
PM   Вверх
Ch0bits
Дата 26.5.2006, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



nikitao
Можно воспроизводить каждый звук в отдельном thread'е. 
PM WWW   Вверх
nikitao
Дата 26.5.2006, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 4
Всего: 26



Цитата(Exception @  26.5.2006,  21:47 Найти цитируемый пост)
Ну вот это вроде DirectSound умеет. 

Ты мне DX предлагаешь юзать? Знал бы зачем мне это нужно- сам бы посмеялся  smile 


Цитата(Ch0bits @  26.5.2006,  22:04 Найти цитируемый пост)
Можно воспроизводить каждый звук в отдельном thread'е. 

 smile  Поподробнее.

Проблему можно было бы частично обойти если бы можно было ставить паузу в воспроизведении,но такого тожк нет. Это и не удивительно. Вообще System.Media появился только во 2 версии Нета. Может в 3 лучше реализовано? smile 

 


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Ch0bits
Дата 26.5.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



Хм... попробовал написать пример и понял, что SoundPlayer'ы действительно друг друга глушат, а метод Play и так создаёт отдельный thread. Думал вместо него можно использовать API PlaySound.

Код

using System;
using System.Runtime.InteropServices;

namespace AsyncPlay
{
    class Program
    {
        #region Режимы воспроизведения
        const int SND_SYNC      = 0x0000;
        const int SND_ASYNC     = 0x0001;
        const int SND_NODEFAULT = 0x0002;
        const int SND_MEMORY    = 0x0004;
        const int SND_LOOP      = 0x0008;
        const int SND_NOSTOP    = 0x0010;
        const int SND_NOWAIT    = 0x00002000;
        #endregion

        [DllImport("winmm.dll")]
        public static extern bool PlaySound(string WavName, IntPtr Handle, int Mode);

        static void Main(string[] args)
        {
            // Фон 
            PlaySound("Windows XP - запуск.wav", new IntPtr(), SND_ASYNC | SND_LOOP);

            // какое-то событие
            Console.ReadKey();
            PlaySound("notify.wav", new IntPtr(), SND_ASYNC);

            Console.ReadKey();
        }
    }
}


А оказалось что API PlaySound и class SoundPlayer - это одно и тоже.  smile 

Единственное что могу предложить:
1. Использовать COM объект MediaPlayer.
2. Использовать bass.dll (есть wrapper nBASS для dotNET)
3. Использовать DirectSound (есть очень простой пример в DirectX SDK) 
PM WWW   Вверх
nikitao
Дата 27.5.2006, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 4
Всего: 26



Усе понятно. Надо вероятно или ждать 3 версии NET или юзать DX.  smile 
Всем спасибо.


PS 
Exception, посмотри, может в beta 3  что-то изменилось  smile  


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Exception
Дата 27.5.2006, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Да там бета только компиляторов. Библиотеку вроде ещё не сделали smile . А вообще, по-моему, использование nBass - неплохой выход, если она предоставляет эти возможности.
P.S. Вроде как MDX тоже интегрирован в Висту. 
PM   Вверх
mr.DUDA
Дата 27.5.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



nikitao, предлагаю юзать DX и не париться smile

Если что, тут в двух словах о работе с DirectSound. 


--------------------
user posted image
PM MAIL WWW   Вверх
nikitao
Дата 27.5.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 4
Всего: 26



Ладно, так и поступлю. Все равно игроделом рано или поздно стану( ну я надеюсь)  smile 


mr.DUDA, спасибо. На самом деле думаю, что разбирусь на примерах к SDK.  smile  


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
mr.DUDA
Дата 28.5.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(nikitao @  27.5.2006,  20:15 Найти цитируемый пост)
mr.DUDA, спасибо. На самом деле думаю, что разбирусь на примерах к SDK. 

И не сомневаюсь smile

[offtopic]Чтоб мне кто-то объяснил в своё время про работу с DX - я б ему памятник поставил...[/offtopic] 


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.