Что нового

Wmp7 v1.1 - Воспроизведение звука и видео с помощью WMP

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
AutoIt: 3.3.6.1 (на других не тестировалось)
Версия: 1.1

Категория: Мультимедиа, Разное

Описание: Воспроизведение мультимедиа файлов и ссылок при помощи объекта WMPlayer.OCX.7

• Windows XP SP3
• Windows 8 (Enterprise) x64
* На других не тестировалось *

Библиотеки:
Wmp7.au3
Wmp7Frame.au3
Wmp7Gui.au3

Примеры:
Разовое воспроизведение.au3 (Воспроизводит звук из папки Media с помощью 1 функции
Плейер.au3 (найден на форуме forum.oszone.net
Пример Wmp7 URL.au3 (Демонстрация (1) воспроизведения звука по URL)
Пример Wmp7Gui URL.au3 (Демонстрация (2) воспроизведения видео и звука по URL)
Пример Wmp7Frame URL.au3 (Демонстрация (3) воспроизведения видео и звука по URL)
Пример Wmp7.au3 (Демонстрация (1) воспроизведения звука из файла)
Пример Wmp7Gui.au3 (Демонстрация (2) воспроизведения видео и звука из файла)
Пример Wmp7Frame.au3 (Демонстрация (3) воспроизведения видео и звука из файла)

Функции Wmp7.au3
_Wmp7_Create() - Создать объект Windows Media Player для дальнейшей работы функций UDF
_Wmp7_SetVolume() - Установить уровень громкости воспроизведения
_Wmp7_GetVolume() - Получить уровень громкости воспроизведения
_Wmp7_SetFile() - Установить файл (или URL) для дальнейшего его воспроизведения
_Wmp7_GetFile() - Получить путь файла (или URL), установленного с помощью _Wmp7_SetFile
_Wmp7_GetTrackName() - Получить заголовок трека
_Wmp7_Play() - Начать воспроизведение (воспроизвести)
_Wmp7_Stop() - Остановить воспроизведение (стоп)
_Wmp7_Pause() - Приостановить воспроизведение (пауза)
_Wmp7_GetDuration() - Получить длинну трека в секундах
_Wmp7_GetCurrentPosition() - Получить уже проигранное время трека (текущщая позиция воспроизведения в секундах)
_Wmp7_SetCurrentPosition() - Перемотать трек на указанную позицию времени в секундах
_Wmp7_SetPlaySpeed() - Изменить скорость воспроизведения трека
_Wmp7_GetPlaySpeed() - Получить скорость воспроизведения трека
_Wmp7_GetPlayState() - Получить статус воспроизведения
_Wmp7_GetPlayStateEx() - Получить строку статуса воспроизведения
_Wmp7_GetStatus() - Получить строку статус-бара проигрывателя (например: "воспроизведение ... - ... xxx kb/s")
_Wmp7_GetVersion() - Получить полную версию установленного на компьютере Windows Media Player
_Wmp7_IsPlay() - Проверка, выполняется-ли воспроизведение в данный момент
_Wmp7_IsPause() - Проверка, приостановлено-ли воспроизведение в данный момент
_Wmp7_IsStop() - Проверка, остановлено-ли воспроизведение в данный момент
_Wmp7_WaitPlay_Start() - Разово воспроизвести файл. На время воспроизведения работа скрипта приостанавливается.

Функции Wmp7Frame.au3
_GUICtrlCreateWmp7Frame() - Создать в окне элемент объекта Windows Media Player
_Wmp7Frame_HideCtrlPanel() - Отобразить или скрыть панель управления и статус-бар Windows Media Player
_Wmp7Frame_FullScreenMode() - Перевести проигрыватель в полноэкранный режим или обратно

Функции Wmp7Gui.au3
_GUICtrlCreateWmp7Gui() - Создать в окне элемент объекта Windows Media Player
_Wmp7Gui_HideCtrlPanel() - Отобразить или скрыть панель управления и статус-бар Windows Media Player
_Wmp7Gui_FullScreenMode() - Перевести проигрыватель в полноэкранный режим или обратно

Код/Пример:
Код:
#Notrayicon
#include "..\Wmp7.au3"
#include <GUIConstants.au3>
#include <GuiConstantsEx.au3>

$oObj = _Wmp7_Create()
	If @Error Then
	MsgBox(16,"Пример Wmp7","Не удалось создать объект Windows Media Player")
	Exit
	EndIF

$sFile = FileOpenDialog ( "Открыть файл звука", "", "Все файлы (*.*)", 1, "" )
If @Error Then Exit

_Wmp7_SetFile($oObj, $sFile)
$sFile = 0



$hWnd = GuiCreate("Пример Wmp7", 500, 325)
$hStatus = GUICtrlCreateEdit ( "", 5, 5, 490, 260, 0x0004+0x1000+0x0800+0x00200000 )

	$bSetVolume = GUICtrlCreateButton("Громкость", 5, 275, 100, 20)
	$bSetCurrentPosition = GUICtrlCreateButton("Перемотка", 110, 275, 100, 20)
	$bSetPlaySpeed = GUICtrlCreateButton("Скорость", 215, 275, 100, 20)

	$bPlay = GUICtrlCreateButton("Воспроизвести", 5, 300, 100, 20)
	$bStop = GUICtrlCreateButton("Стоп", 110, 300, 100, 20)
	$bPause = GUICtrlCreateButton("Пауза", 215, 300, 100, 20)

GUISetState()
AdlibRegister ("_ExampleUpdateInformation", 100)
While 1
	$msg = GUIGetMsg()
	Select
		Case $msg = $bPause
AdlibUnRegister ("_ExampleUpdateInformation")
_Wmp7_Pause($oObj)
If @Error Then MsgBox(48,"Пример Wmp7","Ошибка, код: "&@Error)
AdlibRegister ("_ExampleUpdateInformation", 100)

		Case $msg = $bStop
AdlibUnRegister ("_ExampleUpdateInformation")
_Wmp7_Stop($oObj)
If @Error Then MsgBox(48,"Пример Wmp7","Ошибка, код: "&@Error)
AdlibRegister ("_ExampleUpdateInformation", 100)

		Case $msg = $bPlay
AdlibUnRegister ("_ExampleUpdateInformation")
_Wmp7_Play($oObj)
If @Error Then MsgBox(48,"Пример Wmp7","Ошибка, код: "&@Error)
AdlibRegister ("_ExampleUpdateInformation", 100)

		Case $msg = $bSetPlaySpeed
AdlibUnRegister ("_ExampleUpdateInformation")
$Data = InputBox ( "Пример Wmp7", "Скорость воспроизведения (1=нормальная):", _Wmp7_GetPlaySpeed($oObj), "", 300, 120, @DesktopWidth/2-300/2, @DesktopHeight/2-120/2, 0, $hWnd )
If not @Error Then _Wmp7_SetPlaySpeed($oObj, $Data)
If @Error Then MsgBox(48,"Пример Wmp7","Ошибка, код: "&@Error)
AdlibRegister ("_ExampleUpdateInformation", 100)

		Case $msg = $bSetCurrentPosition
AdlibUnRegister ("_ExampleUpdateInformation")
$Data = InputBox ( "Пример Wmp7", "Перемотать до позиции (в секундах):", _Wmp7_GetCurrentPosition($oObj), "", 300, 120, @DesktopWidth/2-300/2, @DesktopHeight/2-120/2, 0, $hWnd )
If not @Error Then _Wmp7_SetCurrentPosition($oObj, $Data)
If @Error Then MsgBox(48,"Пример Wmp7","Ошибка, код: "&@Error)
AdlibRegister ("_ExampleUpdateInformation", 100)

		Case $msg = $bSetVolume
AdlibUnRegister ("_ExampleUpdateInformation")
$Data = InputBox ( "Пример Wmp7", "Громкость воспроизведения:", _Wmp7_GetVolume($oObj), "", 300, 120, @DesktopWidth/2-300/2, @DesktopHeight/2-120/2, 0, $hWnd )
If not @Error Then _Wmp7_SetVolume($oObj, $Data)
If @Error Then MsgBox(48,"Пример Wmp7","Ошибка, код: "&@Error)
AdlibRegister ("_ExampleUpdateInformation", 100)

		Case $msg = $GUI_EVENT_CLOSE
exit
	EndSelect
WEnd

Файл: Wmp7.rar

История версий:
1.0 - 04.09.2013
1.1 - 04.09.2013
Функция: _Wmp7_GetPlayStateEx > Добавлен статус Buffering (буферизация, @Extended = 6)
Функция: _Wmp7_GetPlayState > Добавлен статус 4 (буферизация, @Extended = 6)
Добавлен пример: Разовое воспроизведение.au3
Функция: _Wmp7_WaitPlay_Start > Исправлена ошибка

Источники: autoit-script.ru, msdn.microsoft.com, yandex.ru
Автор: Astel064

Сам тестировал только на Windows XP SP3 x86. У кого есть возможность протестировать на других системах ( 4, 6, 7, 8 ) буду признателен :smile:
Также жду Ваших советов, предложений о новых функциях и т.д...
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
В Windows 8(Enterprise) нормально работает :smile:

Отличная библиотека, сам тоже искал действия с этим объектом да не нашел.
Вот только оформление "старенькое" от WinXP видимо осталось
 
Автор
Astel064

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
MnM [?]
В Windows 8(Enterprise) нормально работает
smiley.gif

Это отлично, спасибо за информацию :smile:

Отличная библиотека, сам тоже искал действия с этим объектом да не нашел.
Тоже по (по сути) ничего не нашел, только на msdn.microsoft.com небольшая информация по работе с объектом, и то, пришлось по потеть, чтобы разобраться.

А можно по интересоваться о разрядности ОС (x64 или x86)?
 
Верх