Что нового

Winamp Library - Управление аудио плеером Winamp

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 165
Репутация
2 329
AutoIt: 3.2.10.0
Версия: 1.4

Категория: Автоматизация, Интеракция

Описание: 34 функции для управление известным плеером Winamp (только версий 2.x +).
Эта библиотека написана на базе SDK предоставленной на домашней странице Wanamp: http://www.winamp.com/development/sdk
Примечание: Поскольку аудио плеер AIMP поддерживает те же интерактивные свойства что и Winamp, данная библиотека частично может использоваться для управления и этим плеером.

Пример:
Код:
#include <Winamp_Library.au3>

_Winamp_Example()

Func _Winamp_Example()
	;Этот пример запустит Winamp, проверит нет ли песен в плейлисте, если нет, 
	;то покажет диалог выбора файлов для добавления в список,
	;далее нажмёт кнопку Play на случайной песне, установит громкость на 100%,
	;и также установит позицию выбраной песни на половину общей её длины (с середины).
	
	_Winamp_Start(-1, 5)
	
	If @error Then
		MsgBox(16, "Error", StringFormat("There was an error (%d) executing Winamp Player.", @error) & _
			@CRLF & @CRLF & "OK   ===>   EXIT")
		
		Exit
	EndIf
	
	Local $aTracksList = _Winamp_GetPlayListToArray()
	Local $iTotalSongs = UBound($aTracksList)-1
	
	If $iTotalSongs < 1 Then
		Local $sSelectedSong = FileOpenDialog("Select Song", "C:\", "Media files (*.mp3;*.wav;*.mdi)", 7)
		If @error Then Exit
		
		If StringInStr($sSelectedSong, "|") Then
			Local $aSelectedSongs = StringSplit($sSelectedSong, "|")
			$iTotalSongs = 0
			
			For $i = 2 To UBound($aSelectedSongs)-1
				_Winamp_AddFile($aSelectedSongs[1] & "\" & $aSelectedSongs[$i])
				$iTotalSongs += 1
			Next
		Else
			_Winamp_AddFile($sSelectedSong)
			$iTotalSongs = 1
		EndIf
	EndIf
	
	Local $iRandom_Song = Random(0, $iTotalSongs-1, 1)
	
	_Winamp_Play($iRandom_Song)
	_Winamp_SetVolume(255)
	
	;Ждём начало проигрывания песни...
	While _Winamp_GetCurrentTrackPlayStatus() <> 1
		Sleep(100)
	WEnd
	
	Sleep(100)
	
	Local $iTrack_Lenght = _Winamp_GetCurrentTrackOutputTime(1)
	
	Sleep(100)
	
	_Winamp_Seek(Ceiling($iTrack_Lenght/2))
EndFunc

Файл: http://autoit-script.ru/index.php?action=downloads;sa=view;down=3

Снимок Видео:
Это видео демонстрирует почти все этапы создания библиотеки (в ускоренном режиме естественно :smile: )...
[flash=500,400]http://www.youtube.com/v/Zntv3aR7Rio&hl=ru&fs=1&rel=0&color1=0x006699&color2=0x54abd6&border=1[/flash]
http://www.youtube.com/watch?v=Zntv3aR7Rio

История версий:
Пока только на английском...
v1.4 [22.May.2009]
* The library now compatible with AutoIt v3.3.0.0.
* Added optional $h_Winamp_Wnd parameter to all functions that sends message to winamp's window - It should allow to manage multiple winamp instances.
(by default the handle is taken from $sWINAMP_CLASS).

v1.3 [19.May.2008]
The library now compatible with AutoIt v3.2.12.0.

Added UDF: _Winamp_ClearPlayList()
Added UDF: _Winamp_GetCurrentTrackFilePath()
Changed _Winamp_GetPlayListToArray() function.
Now it return a 2 dimensional array, where [0][0] is the element of current track, [n][0] is the track title, and [n][1] is the track file path.

* Fixed UDF _Winamp_GetCurrentTrackTitle(), with $iMode <> -1 it was not returning correct track position.

v1.2 [15.May.2008]
_Winamp_GetCurrentTrackOutputTime() function now always will return output time in milliseconds.
Now if $iMode = -1 (default) function return current position, if <> -1 it return song lenght.
Added UDF: _Winamp_GetVolume()

Источник: http://www.autoitscript.com/forum/index.php?showtopic=71187
Автор(ы): G.Sandler (CreatoR)
 
Верх