none
Подключение DirectX библиотеки RRS feed

  • Вопрос

  • Добрый день.  мне необходима библиотека Microsoft.DirectX.AudioVideoPlayback для программы на С# , я скачал Microsoft.DirectX  http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=3021d52b-514e-41d3-ad02-438a3ba730ba  установил ее, после этого запустил VS ultimate 2010 (rus) и в ссылках проекта , не обнаружил в списке Net не одну библиотеку Microsoft.DirectX

    после я вручную нашел  добавил Microsoft.DirectX.AudioVideoPlayback.dll,  в проекте прописал using Microsoft.DirectX.AudioVideoPlayback

    ошибок в коде не обнаружилось, но при первом дебаге данного  вин приложения студия не запустила даже окно прилождения, а через минуту выдало окно 

     

    " Visual Studio"  ожидает завершение операции. если такая задержка встречается постоянно в ходе обычного использования , сообщите об этой неполадке в корпорацию....   и т.д  в низу видны две кнопки переключится и продолжить ждать..

     

    на любые действия отказывается реагировать.. приходится через диспетчер задач завершать ее работу..   подскажите в чем проблема? заранее благодарен 

    26 ноября 2010 г. 8:22

Ответы

  • Можно воспользоваться Multimedia API (winmm.dll) :

    [DllImport("winmm.dll")]
       static extern Int32 mciSendString(string command, StringBuilder buffer, int bufferSize, IntPtr hwndCallback);
        
       public void CloseMedia()
       {
         string _command = "close MediaFile";
         mciSendString(_command, null, 0, IntPtr.Zero);
       }
        
       public bool OpenMedia(string sFileName)
       {
         string _command = "open \"" + sFileName + "\" type MPEGVideo alias MediaFile";
         return mciSendString(_command, null, 0, IntPtr.Zero) == 0;
       }
       
       public void PlayMedia(bool loop)
       {
          string _command = "play MediaFile";
          if (loop)
           _command += " REPEAT";
          mciSendString(_command, null, 0, IntPtr.Zero);
       }
    

    Для использования:

    1) подключить пространство имен

    using System.Runtime.InteropServices;
    

    2) вызвать соответсвующие методы:\

    // Открытие и воспроизведение
     if (OpenMedia("red_17_02(2).mp3"))
            PlayMedia(true);   // true - повторять бесконечно
    /* .... */
     
     CloseMedia(); // закрываем файл   
    


    Для связи [mail]
    • Помечено в качестве ответа Abolmasov Dmitry 30 ноября 2010 г. 9:36
    26 ноября 2010 г. 15:10

Все ответы

  • P.S уже нашел  соответствующий топик   http://social.msdn.microsoft.com/Forums/ru-RU/fordesktopru/thread/96db89af-4633-4dd3-8e3a-177469e82fe2

    тогда какая есть альтернатива библиотеки  для воспроизведения mp3 файлов ?.. заранее благодарен 

    26 ноября 2010 г. 9:22
  • Можно воспользоваться Multimedia API (winmm.dll) :

    [DllImport("winmm.dll")]
       static extern Int32 mciSendString(string command, StringBuilder buffer, int bufferSize, IntPtr hwndCallback);
        
       public void CloseMedia()
       {
         string _command = "close MediaFile";
         mciSendString(_command, null, 0, IntPtr.Zero);
       }
        
       public bool OpenMedia(string sFileName)
       {
         string _command = "open \"" + sFileName + "\" type MPEGVideo alias MediaFile";
         return mciSendString(_command, null, 0, IntPtr.Zero) == 0;
       }
       
       public void PlayMedia(bool loop)
       {
          string _command = "play MediaFile";
          if (loop)
           _command += " REPEAT";
          mciSendString(_command, null, 0, IntPtr.Zero);
       }
    

    Для использования:

    1) подключить пространство имен

    using System.Runtime.InteropServices;
    

    2) вызвать соответсвующие методы:\

    // Открытие и воспроизведение
     if (OpenMedia("red_17_02(2).mp3"))
            PlayMedia(true);   // true - повторять бесконечно
    /* .... */
     
     CloseMedia(); // закрываем файл   
    


    Для связи [mail]
    • Помечено в качестве ответа Abolmasov Dmitry 30 ноября 2010 г. 9:36
    26 ноября 2010 г. 15:10