Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2013, 14:40   #1
recca
 
Регистрация: 29.03.2013
Сообщений: 5
По умолчанию вопрос по MediaPlayer

вопрос по MediaPlayer, как сделать так чтобы файлы воспроизводились друг за другом,а не одновременно
есть такой код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Uri a = new Uri(@"C:\Users\User\Desktop\1.WAV") ;
Uri b = new Uri(@"C:\Users\User\Desktop\2.WAV") ;
MediaPlayer MP = new MediaPlayer();
MediaPlayer MP1 = new MediaPlayer();
Console.WriteLine(MP.NaturalDuratio n);
MP.Open(a);
MP.Play();

MP1.Open(b);
MP1.Play();
Console.ReadLine();

}
}
}
recca вне форума Ответить с цитированием
Старый 29.03.2013, 15:41   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Код:
using System;
using System.Collections;
using System.Windows.Media;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static readonly Queue queue = new Queue();

        private static void InitQueue()
        {
            queue.Enqueue( new Uri( @"C:\Users\User\Desktop\1.WAV" ) );
            queue.Enqueue( new Uri( @"C:\Users\User\Desktop\2.WAV" ) );
        }

        private static void Main()
        {
            InitQueue();
            PlayQueue();
            Console.ReadLine();
        }

        private static void PlayQueue()
        {
            var mediaPlayer = new MediaPlayer();
            while ( queue.Count > 0 )
            {
                mediaPlayer.Open( queue.Dequeue() as Uri );
                Console.WriteLine( mediaPlayer.NaturalDuration );
                mediaPlayer.Play();
            }
        }
    }
}
Как-то так
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 29.03.2013 в 15:44.
Скарам вне форума Ответить с цитированием
Старый 29.03.2013, 15:46   #3
recca
 
Регистрация: 29.03.2013
Сообщений: 5
По умолчанию

а можете обьяснить как вы это сделали?)
recca вне форума Ответить с цитированием
Старый 29.03.2013, 15:47   #4
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Код-то работает?
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 29.03.2013, 15:53   #5
recca
 
Регистрация: 29.03.2013
Сообщений: 5
По умолчанию

не,тоже самое,я прост не проверял сначала и хотел узнать насчет того как вы пытались это сделать,но оно всеравно запускает их одновременно
recca вне форума Ответить с цитированием
Старый 29.03.2013, 18:12   #6
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Второй плеер следует запускать тогда, когда у первого отработает событие MediaEnded, т.е. после окончания воспроизведения первым плеером своего файла )
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 29.03.2013, 18:20   #7
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

На работе пользуемся этим
Код:
using System.Threading;    
using Microsoft.DirectX.AudioVideoPlayback;
...
public void PlayMp3(string fileName)
{
    try
    {
        Audio mp3 = new Audio(fileName);
        mp3.Play();
        Thread.Sleep((int)(mp3.Duration * 1000));
        mp3.Dispose();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.InnerException + "[]" + ex.Message); //логирование, к делу не относится
    }
}
Вызывать просто в цикле для вех имён файлов.
phomm вне форума Ответить с цитированием
Старый 30.03.2013, 23:02   #8
recca
 
Регистрация: 29.03.2013
Сообщений: 5
По умолчанию

не могли бы вы помочь обработать это событие,а то я не умею еще) пытался разобраться,но не получилось
recca вне форума Ответить с цитированием
Старый 30.03.2013, 23:08   #9
recca
 
Регистрация: 29.03.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
Второй плеер следует запускать тогда, когда у первого отработает событие MediaEnded, т.е. после окончания воспроизведения первым плеером своего файла )
не могли бы вы помочь обработать это событие,а то я покачто не умею)
recca вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MediaPlayer romanzi Общие вопросы Delphi 0 03.04.2011 22:29
Вопрос по компоненту MediaPlayer FanAnnGeL Компоненты Delphi 4 17.02.2010 00:42
Mediaplayer anton14 Мультимедиа в Delphi 12 20.10.2008 11:07
вопрос о MediaPlayer san72 Помощь студентам 5 13.10.2008 17:01
Mediaplayer RealSHELS Общие вопросы Delphi 3 12.05.2008 16:44