Что нового

[Сеть, интернет] Плеер для радиостанций 101.RU

ivsatel

Продвинутый
Сообщения
319
Репутация
84
AutoIt: v3.3.8.1
Версия: 1.0.2.23

Категория: Автоматизация, Вспомогательные функции, Графика, Интернет, Сеть, Разное

Описание: Эта программа позволит Вам прослушивать транслируемые радиостанции 101.RU.

Функционал: Любое окно такое как TOP10, Плейлист, Новые треки, имеют возможность копировать название прослушиваемой композиции и сохранение композиции на ваш ПК.

Код/Пример файл Radio.au3:
Код:
#include <Constants.au3>
#include <GuiButton.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
#include <GuiImageList.au3>
#include <GDIPlus.au3>
#include <ListBoxConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <Icons.au3>
#include <SliderConstants.au3>
#include <WinAPI.au3>
#include <Misc.au3>
#include <MyBassDll.au3>
#include <InfoTrack-101.au3>
#include <VLC-Read_RTMP.au3>
#include <Binary_Bass_DLL.au3>
#include <GZIP_exe.au3>

Global $aTextSourseChanel, $aTextHrefChanel, $sUrl2Chanel, $sInetread2, $sInetread3, $Coord, $TrayRestoreItem, $TrayExitItem, $TrayNameArtist, _
		$Label4, $BattonStop, $BattonPlay, $hGui, $Label1, $Label2, $aChanelsHref, $aChanelsName, $hComboChan, $hComboSourseChan, $Label3, $iSlider, _
		$iSettings, $play, $stop, $aTitleSong, $TrayNameArtistSour, $TrayTopArtistSour, $hChGui, $List1, $sFindPlayList, $aLinckPlayList, $aSoursPlayList, _
		$ContextMenu, $ListContext, $ListItem, $aSoursDownPlayList, $ListDownloadItem, $Icon, $MainContextMenu, $Iconcontext, $IconitemPL, $IconitemRL, _
		$IconitemAbout, $IconitemEXIT, $IconitemNEWTRAX, $xhChGui, $xContextMenu, $xList1, $xListContext, $xListItem, $xListDownloadItem, $xsFindPlayList, _
		$xaSoursPlayList, $xaSoursDownPlayList, $tophChGui, $topContextMenu, $topList1, $topListContext, $topListItem, $topListDownloadItem, $topsFindPlayList, _
		$topaSoursPlayList, $topaSoursDownPlayList, $IconitemTOP, $TrayTop10, $TrayNEWTraxSour, $reload, $MusicHandle, $sIDChanel, $z, $file, $IconitemValidURL, _
		$hPLCreat, $BCGV, $TrayValidURL, $TrayValidURLSet, $IconitemPlayURL, $TrayPlayURL, $TrayPlayURLSet, $sCheck, $iDummy, $aMakeArrayNameChanPersonal, _
		$aMakeArrayHrefChanPersonal, $aNameChanPersonal[1], $aHrefChanPersonal[1], $aMakeHrefPage[1], $sIDRTMPChanel, $hWndPlayer, $StatDownload, $iNavCount = 'Stop', _
		$chek, $tophFindGui, $InputFindGui, $findbatt, $ComboFindStation, $startbatt, $aAllResArray[1][2], $aRes1Href[1], $aRes2Href[1], $aRes1Name1[1], _
		$aRes2Name2[1], $sSrtreqest1 = '', $sS, $sReadInp, $sSearchCountURL = 'Silent', $IconitemSearch, $bFile, $bSour, $RandFileName, $iTempName, $bOpenTempFile, _
		$1Param, $2Param, $sPageURL

Local $tText, $sInetread1, $vGetSourseChanPersonal, $bFileGZIP, $iPIDGZIP = '', $bwBassDll

;##########################	Запуск только одной копии программы
If Not _Singleton(@ScriptName, 1) Then
	Exit
EndIf
;##########################	Запуск только одной копии программы

;If Not FileExists(@TempDir & '\BASS.dll') Then
FileDelete(@TempDir & '\BASS.dll')
$bwBassDll = FileOpen(@TempDir & '\BASS.dll', 26)
FileWrite($bwBassDll, _InstallBassDll())
FileClose($bwBassDll)
;EndIf

;~ FileInstall('BASS.dll', @TempDir & '\BASS.dll', 1)

FileInstall('DownloadThreadMod.a3x', @TempDir & '\DownloadThreadMod.a3x', 1)

;##########################
;##########################	Установка модуля загрузки
;##########################

While 1

	If FileExists(@TempDir & '\DownloadThreadMod.a3x') Then
		$bFile = FileOpen(@TempDir & '\DownloadThreadMod.a3x', 16)
		$bSour = FileRead($bFile)
		FileClose($bFile)
		FileDelete(@TempDir & '\DownloadThreadMod.a3x')
		ExitLoop
	EndIf

WEnd

;##########################
;##########################	Установка модуля загрузки
;##########################
Opt('SendKeyDelay', 0)
Opt('TrayMenuMode', 3)
Opt('MustDeclareVars', 1)
Opt('GUICloseOnESC', 1)

OnAutoItExitRegister("OnAutoItExit")

_BASS_STARTUP(@TempDir & '\BASS.dll')
_BASS_Init(-1, 44100, 4096, '', '')

If @error Then
	MsgBox(0, "Error", "Could not initialize Bass.dll")
	Exit
EndIf

HotKeySet('^4', '_RestoreFromTray_Proc')

;################################################Создание меню для TOP 10
$TrayTop10 = TrayCreateItem('TOP 10')
TrayCreateItem('')
;################################################Создание меню для Новые треки
$TrayNEWTraxSour = TrayCreateItem('Новые треки')
TrayCreateItem('')
;################################################Создание меню для Плейлист
$TrayTopArtistSour = TrayCreateItem('Плейлист')
TrayCreateItem('')
;################################################Создание меню для Названия
$TrayNameArtist = TrayCreateMenu('Название')
$TrayNameArtistSour = TrayCreateItem('Артист', $TrayNameArtist)
TrayCreateItem('')
;################################################Создание меню для Управления

;################################################	Получение адреса страницы
$TrayPlayURL = TrayCreateMenu('Адрес страницы')
$TrayPlayURLSet = TrayCreateItem('http://101.ru', $TrayPlayURL)
TrayCreateItem('')
;################################################	Получение адреса страницы

;################################################	Получение валидного адреса
$TrayValidURL = TrayCreateMenu('Валидный адрес')
$TrayValidURLSet = TrayCreateItem('Получить валидный адрес канала в плейлист', $TrayValidURL)
TrayCreateItem('')
;################################################	Получение валидного адреса

$iSettings = TrayCreateMenu("Управление")
$reload = TrayCreateItem('Перезагрузить', $iSettings)
$play = TrayCreateItem('Play', $iSettings)
$stop = TrayCreateItem('Stop', $iSettings)
TrayCreateItem('')
$TrayRestoreItem = TrayCreateItem('Развернуть')
TrayItemSetState(-1, $TRAY_DEFAULT)
TrayCreateItem('')
$TrayExitItem = TrayCreateItem('Выход')
TraySetToolTip('RADIO-101.RU')
TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "_RestoreFromTray_Proc")
TraySetClick(16)

_MainGUIStart()

Func _MainGUIStart()

	$hGui = GUICreate("Радио 101-RU", 240, 290, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))

	;##################################################################################################################Создание меню

	$Icon = GUICtrlCreateIcon('', 0, 210, 5, 16, 16)
	GUICtrlSetTip($Icon, 'Меню', '', 1, 3)
	GUICtrlSetImage($Icon, @ScriptFullPath, 99)

	$Iconcontext = GUICtrlCreateContextMenu($Icon)

	;################################################Создание меню для Плейлист

	$IconitemTOP = GUICtrlCreateMenuItem("TOP 10", $Iconcontext)
	$IconitemPL = GUICtrlCreateMenuItem("Плейлист", $Iconcontext)
	$IconitemNEWTRAX = GUICtrlCreateMenuItem("Новые треки", $Iconcontext)
	GUICtrlCreateMenuItem("", $Iconcontext) ; разделитель

	$IconitemSearch = GUICtrlCreateMenuItem("Поиск радиостанции", $Iconcontext)
	GUICtrlCreateMenuItem("", $Iconcontext) ; разделитель

	$IconitemValidURL = GUICtrlCreateMenuItem("Получить валидный адрес канала в плейлист", $Iconcontext)
	GUICtrlCreateMenuItem("", $Iconcontext) ; разделитель

	$IconitemPlayURL = GUICtrlCreateMenuItem("Адрес канала", $Iconcontext)
	GUICtrlCreateMenuItem("", $Iconcontext) ; разделитель

	$IconitemRL = GUICtrlCreateMenuItem("Перезагрузка", $Iconcontext)
	GUICtrlCreateMenuItem("", $Iconcontext) ; разделитель

	$IconitemEXIT = GUICtrlCreateMenuItem("Выход", $Iconcontext)
	GUICtrlCreateMenuItem("", $Iconcontext) ; разделитель

	$IconitemAbout = GUICtrlCreateMenuItem("О Программе", $Iconcontext)

	;##################################################################################################################Создание меню

	GUISetBkColor(0xFFFFFF, $hGui)
	$Label1 = GUICtrlCreateLabel('Выберите канал', 10, 10, 90, 17)
	GUICtrlSetBkColor($Label1, 0xFFFFFF)
	$hComboChan = GUICtrlCreateCombo('', 10, 30, 220)
	$Label2 = GUICtrlCreateLabel('Содержимое канала', 10, 55, 150, 17)
	GUICtrlSetBkColor($Label2, 0xFFFFFF)
	$hComboSourseChan = GUICtrlCreateCombo('', 10, 75, 220)

	$BattonPlay = GUICtrlCreateButton('Play', 10, 110, 220, 25)
	$BattonStop = GUICtrlCreateButton("Stop", 10, 145, 220, 25)
	$Label4 = GUICtrlCreateLabel('', 10, 180, 220, 40, BitOR($ES_CENTER, $ES_NOHIDESEL, $ES_WANTRETURN))
	GUICtrlSetFont($Label4, 8, 400)
	GUICtrlSetColor($Label4, 0x0033FF)
	GUICtrlSetBkColor($Label4, 0xFFFFFF)
	$Label3 = GUICtrlCreateLabel('Г р о м к о с т ь', 10, 225, 220, 20, $SS_CENTER)
	GUICtrlSetFont($Label3, 10, 400, 4)
	GUICtrlSetBkColor($Label3, 0xFFFFFF)

	$iSlider = GUICtrlCreateSlider(10, 245, 220, 30, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
	GUICtrlSetBkColor($iSlider, 0xFFFFFF)
	GUICtrlSetLimit($iSlider, 100, 0)
	GUICtrlSetData($iSlider, 100)

	$iDummy = GUICtrlCreateDummy()

	; Устанавливает связь идентификаторов с Ctrl+1 и Ctrl+2 и Ctrl+3 и Ctrl+- и Ctrl+=
	Local $aAccelKeys[5][2] = [["^1", $BattonPlay],["^2", $BattonStop],["^3", $iDummy],["^=", $iSlider],["^-", $iSlider]]
	GUISetAccelerators($aAccelKeys)

	;№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№	Заполнение комбобоксов

	_GetStartAdres()

	;№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№	Заполнение комбобоксов

	GUISetState(@SW_SHOW, $hGui)

	While 1

		Sleep(10)

		Switch TrayGetMsg()

			Case $TrayRestoreItem

				GUISetState(@SW_SHOW, $hGui)
				GUISetState(@SW_RESTORE, $hGui)
				TraySetState(2)

			Case $reload

				If ProcessExists($iPID) Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					$s_ENABLE_Player = 0
				EndIf

				AdlibUnRegister('_Title')
				GUIDelete($hGui)
				_MainGUIStart()

			Case $play

				If GUICtrlRead($hComboSourseChan) == '' Then

					MsgBox('', 'ERROR', 'Выберите канал и содержимое канала')
				EndIf
				If $iNavCount == 'Play' Then
					ContinueCase
				Else
					If GUICtrlRead($hComboChan) == 'Персональные' And $s_ENABLE_Player == 0 Then
						AdlibRegister('_Title', 15000)
						For $i = 0 To UBound($aMakeArrayNameChanPersonal) - 1
							If GUICtrlRead($hComboSourseChan) == $aNameChanPersonal[$i] Then
								$iNavCount = 'Play'
								_Search_Player($aHrefChanPersonal[$i])
								GUISetState(@SW_MINIMIZE, $hGui)
							EndIf
						Next
					Else
						If Not IsArray($aTextSourseChanel) Or Not IsArray($aTextHrefChanel) Or GUICtrlRead($hComboSourseChan) == '' And $s_ENABLE_Player == 0 Then

							MsgBox('', 'ERROR', 'Выберите канал и содержимое канала')
						Else
							_PlayStation()
						EndIf
					EndIf

				EndIf

			Case $stop

				If ProcessExists($iPID) Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					$s_ENABLE_Player = 0
				EndIf

				If Not IsArray($aTextSourseChanel) Or Not IsArray($aTextHrefChanel) Or GUICtrlRead($hComboSourseChan) == '' Then
					MsgBox('', 'ERROR', 'Выберите канал и содержимое канала')
				Else
					AdlibUnRegister('_Title')
					_StopPlayStation()
				EndIf

			Case $TrayTopArtistSour

				If GUICtrlRead($hComboChan) <> '' And GUICtrlRead($hComboSourseChan) <> '' And $iNavCount == 'Play' Then
					_GetPlayList()
				Else
					MsgBox('', 'ERROR', 'Отображение плейлиста' & @LF & 'Возможно только при воспроизведении радиоканала!' & @LF & 'При этом' & @LF & 'Нельзя менять прослушиваемую станцию!')
				EndIf

			Case $TrayTop10

				If GUICtrlRead($hComboChan) <> '' And GUICtrlRead($hComboSourseChan) <> '' And $iNavCount == 'Play' Then
					_GetTOP()
				Else
					MsgBox('', 'ERROR', 'Отображение TOP листа' & @LF & 'Возможно только при воспроизведении радиоканала!' & @LF & 'При этом' & @LF & 'Нельзя менять прослушиваемую станцию!')
				EndIf

			Case $TrayNEWTraxSour

				If GUICtrlRead($hComboChan) <> '' And GUICtrlRead($hComboSourseChan) <> '' And $iNavCount == 'Play' Then
					_GetNEWTRAX()
				Else
					MsgBox('', 'ERROR', 'Отображение новых треков' & @LF & 'Возможно только при воспроизведении радиоканала!' & @LF & 'При этом' & @LF & 'Нельзя менять прослушиваемую станцию!')
				EndIf

			Case $TrayNameArtist

				ClipPut(GUICtrlRead($Label4))

			Case $TrayValidURLSet

				If GUICtrlRead($hComboChan) <> '' And GUICtrlRead($hComboSourseChan) <> '' And $iNavCount == 'Play' Then
					_ValidPlayListChanel()
				Else
					If $s_ENABLE_Player == 1 Then
						_ValidPlayListChanel()
					Else
						MsgBox('', 'ERROR', 'Создание плейлиста' & @LF & 'Возможно только при воспроизведении радиоканала!' & @LF & 'При этом' & @LF & 'Нельзя менять прослушиваемую станцию!')
					EndIf
				EndIf

			Case $TrayPlayURLSet

				ClipPut('http://101.ru' & $sPageURL)

			Case $TrayExitItem

				If ProcessExists($iPID) Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					$s_ENABLE_Player = 0
				EndIf
				AdlibUnRegister('_Title')
				Exit

			Case $TRAY_EVENT_PRIMARYDOWN

				If BitAND(WinGetState($hGui), 2) Then
					_WinAPI_SetWindowLong($hGui, $GWL_HWNDPARENT, WinGetHandle(AutoItWinGetTitle()))
					GUISetState(@SW_HIDE, $hGui)
					TraySetState(1)
				Else
					_WinAPI_SetWindowLong($hGui, $GWL_HWNDPARENT, 0)
					GUISetState(@SW_SHOW, $hGui)
					TraySetState(1)
				EndIf

		EndSwitch

		;###############################################################################################################################

		If Not ProcessExists($iPID) And $s_ENABLE_Player == 1 Then _StopPlayStation()
		If ClipGet() == 'Загрузка плейлиста' Then ClipPut('')
		If $s_ENABLE_Player == 'Error' Then _StopPlayStation()

		$No_Play_url = _BASS_ChannelGetVolume($MusicHandle)

		;###############################################################################################################################

		Switch GUIGetMsg()

			Case $GUI_EVENT_CLOSE

				If ProcessExists($iPID) Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					$s_ENABLE_Player = 0
				EndIf

				AdlibUnRegister('_Title')
				Exit

			Case $IconitemEXIT

				If ProcessExists($iPID) Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					$s_ENABLE_Player = 0
				EndIf

				AdlibUnRegister('_Title')
				Exit

			Case $iDummy

				Local $dll = DllOpen("user32.dll")
				While 1
					Select
						Case BitAND(_IsPressed("11"), _IsPressed("33")) ;отслеживается нажатие Ctrl & "="

							GUISetState(@SW_HIDE, $hGui)
							TraySetState(1)
							ExitLoop 1

					EndSelect
					ExitLoop
				WEnd
				DllClose($dll)

			Case $GUI_EVENT_MINIMIZE

				GUISetState(@SW_HIDE, $hGui)
				TraySetState(1)

			Case $IconitemPlayURL

				ClipPut('http://101.ru' & $sPageURL)

			Case $IconitemSearch

				_FindStationGUI()

			Case $IconitemAbout

				MsgBox(0, 'О Программе', 'Версия программы = ' & FileGetVersion(@ScriptFullPath) & @LF & 'Разработчик = IvSatel')

			Case $IconitemRL

				If ProcessExists($iPID) Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					$s_ENABLE_Player = 0
				EndIf

				GUIDelete($hGui)
				_MainGUIStart()

			Case $IconitemTOP

				If GUICtrlRead($hComboChan) <> '' And GUICtrlRead($hComboSourseChan) <> '' And $iNavCount == 'Play' Then
					_GetTOP()
				Else
					MsgBox('', 'ERROR', 'Отображение TOP листа' & @LF & 'Возможно только при воспроизведении радиоканала!' & @LF & 'При этом' & @LF & 'Нельзя менять прослушиваемую станцию!')
				EndIf

			Case $IconitemPL

				If GUICtrlRead($hComboChan) <> '' And GUICtrlRead($hComboSourseChan) <> '' And $iNavCount == 'Play' Then
					_GetPlayList()
				Else
					MsgBox('', 'ERROR', 'Отображение плейлиста' & @LF & 'Возможно только при воспроизведении радиоканала!' & @LF & 'При этом' & @LF & 'Нельзя менять прослушиваемую станцию!')
				EndIf

			Case $IconitemNEWTRAX

				If GUICtrlRead($hComboChan) <> '' And GUICtrlRead($hComboSourseChan) <> '' And $iNavCount == 'Play' Then
					_GetNEWTRAX()
				Else
					MsgBox('', 'ERROR', 'Отображение новых треков' & @LF & 'Возможно только при воспроизведении радиоканала!' & @LF & 'При этом' & @LF & 'Нельзя менять прослушиваемую станцию!')
				EndIf

			Case $IconitemValidURL

				If _BASS_ChannelGetVolume($MusicHandle) <> 0 Or $s_ENABLE_Player == 1 Then
					_ValidPlayListChanel()
				Else
					MsgBox('', 'ERROR', 'Создание плейлиста' & @LF & 'Возможно только при воспроизведении радиоканала!' & @LF & 'При этом' & @LF & 'Нельзя менять прослушиваемую станцию!')
				EndIf

			Case $hComboChan ; Событие Первого чекбокса

				If $iNavCount == 'Play' Then _StopPlayStation()

				If $s_ENABLE_Player == 1 And $s_ENABLE_Player <> 'Error' Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					AdlibUnRegister('_Title')
					GUICtrlSetColor($Label4, 0x0033FF)
					GUICtrlSetData($Label4, '')
					$s_ENABLE_Player = 0
				Else
					AdlibUnRegister('_Title')
					GUICtrlSetColor($Label4, 0x0033FF)
					GUICtrlSetData($Label4, '')
					$s_ENABLE_Player = 0
				EndIf

				GUICtrlSetState($hComboSourseChan, $GUI_DISABLE)

				;Добавление в чекбокс адресов основных каналов

				If GUICtrlRead($hComboChan) <> 'Персональные' Then

					For $i = 0 To UBound($aChanelsName) - 1
						If GUICtrlRead($hComboChan) == $aChanelsName[$i] Then
							$sInetread2 = InetRead('http://101.ru' & $aChanelsHref[$i], 1)
							$aTextSourseChanel = StringRegExp(BinaryToString($sInetread2, 4), '(?si)<h2 class="title"><a href=".*?">(.*?)</a></h2>', 3)
							InetClose($sInetread2)
							If Not IsArray($aTextSourseChanel) Then MsgBox('', 'ERROR', '$aTextSourseChanel = ' & @error)
							$sInetread3 = InetRead('http://101.ru' & $aChanelsHref[$i], 1)
							$aTextHrefChanel = StringRegExp(BinaryToString($sInetread3, 4), '(?si)<h2 class="title"><a href="(.*?)">.*?</a></h2>', 3)
							InetClose($sInetread3)
							If Not IsArray($aTextHrefChanel) Then MsgBox('', 'ERROR', '$aTextHrefChanel = ' & @error)
						EndIf
					Next

					GUICtrlSetData($hComboSourseChan, '', '')

					For $i = 0 To UBound($aTextSourseChanel) - 1
						GUICtrlSetData($hComboSourseChan, $aTextSourseChanel[$i] & '|') ; Имена станций
					Next

				Else

					GUICtrlSetData($hComboSourseChan, '', '')

					For $i = 0 To UBound($aNameChanPersonal) - 1
						GUICtrlSetData($hComboSourseChan, $aNameChanPersonal[$i] & '|') ; Имена станций
					Next

					;Добавление в чекбокс адресов основных каналов
				EndIf

				GUICtrlSetState($hComboSourseChan, $GUI_ENABLE)

			Case $hComboSourseChan ; Событие второго чекбокса

				If $iNavCount == 'Play' Then _StopPlayStation()

				If $s_ENABLE_Player == 1 And $s_ENABLE_Player <> 'Error' Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					AdlibUnRegister('_Title')
					GUICtrlSetColor($Label4, 0x0033FF)
					GUICtrlSetData($Label4, '')
					$s_ENABLE_Player = 0
				Else

					AdlibUnRegister('_Title')
					GUICtrlSetColor($Label4, 0x0033FF)
					GUICtrlSetData($Label4, '')
					$s_ENABLE_Player = 0

					GUICtrlSetData($Label4, '')

					_BASS_ChannelStop($MusicHandle)
					_BASS_StreamFree($MusicHandle)

					$iNavCount = 'Stop'
					GUICtrlSetState($BattonPlay, $GUI_FOCUS)
				EndIf

			Case $BattonPlay

				If GUICtrlRead($hComboSourseChan) == '' Then

					MsgBox('', 'ERROR', 'Выберите канал и содержимое канала')
				EndIf
				If $iNavCount == 'Play' Then
					ContinueCase
				Else
					If GUICtrlRead($hComboChan) == 'Персональные' And $s_ENABLE_Player == 0 Then
						AdlibRegister('_Title', 15000)
						For $i = 0 To UBound($aMakeArrayNameChanPersonal) - 1
							If GUICtrlRead($hComboSourseChan) == $aNameChanPersonal[$i] Then
								$iNavCount = 'Play'
								_Search_Player($aHrefChanPersonal[$i])
								GUISetState(@SW_MINIMIZE, $hGui)
							EndIf
						Next
					Else
						If Not IsArray($aTextSourseChanel) Or Not IsArray($aTextHrefChanel) Or GUICtrlRead($hComboSourseChan) == '' And $s_ENABLE_Player == 0 Then

							MsgBox('', 'ERROR', 'Выберите канал и содержимое канала')
						Else
							_PlayStation()
						EndIf
					EndIf

				EndIf

			Case $Label4
				While 1
					If GUICtrlRead($Label4) == '' Then ExitLoop
					If GUICtrlRead($Label4) <> '' And GUICtrlRead($Label4) <> 'Загрузка плейлиста' Then
						ClipPut(GUICtrlRead($Label4))
						ExitLoop
					EndIf
				WEnd

			Case $BattonStop

				If $s_ENABLE_Player == 1 And $s_ENABLE_Player <> 'Error' Then
					While WinExists("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]") = 1
						$hWndPlayer = WinWait("[REGEXPTITLE:.*?VLC.*?|.*?PotPlayer.*?]", "", 5)
						WinKill($hWndPlayer)
					WEnd
					AdlibUnRegister('_Title')
					GUICtrlSetColor($Label4, 0x0033FF)
					GUICtrlSetData($Label4, '')
					$s_ENABLE_Player = 0
					ContinueCase
				EndIf

				AdlibUnRegister('_Title')
				_StopPlayStation()

			Case $iSlider

				Local $dll = DllOpen("user32.dll")
				While 1
					Select
						Case BitAND(_IsPressed("11"), _IsPressed("BB")) ;отслеживается нажатие Ctrl & "="

							If GUICtrlRead($iSlider) <> 100 Then
								GUICtrlSetData($iSlider, GUICtrlRead($iSlider) + 5)
								ExitLoop 1
							EndIf

						Case BitAND(_IsPressed("11"), _IsPressed("BD")) ;отслеживается нажатие Ctrl & "-"
							If GUICtrlRead($iSlider) <> 0 Then
								GUICtrlSetData($iSlider, GUICtrlRead($iSlider) - 5)
								ExitLoop 1
							EndIf
					EndSelect
					ExitLoop
				WEnd
				DllClose($dll)
				_Volum()
		EndSwitch
	WEnd

EndFunc   ;==>_MainGUIStart

Файл: EXE


Источник: autoit-script.ru

Автор: ivsatel
 
Автор
I

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Re: [Сеть, интернет] Плеер для радиостанций 101.RU (надстройка над IE)

Обновил до версии 1.0.0.3

Исправлены мелкие ошибки.
Добавил отображение плейлиста.
Добавил возможность перезагрузки плеера.
 
Автор
I

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Re: [Сеть, интернет] Плеер для радиостанций 101.RU (надстройка над IE)

Обновил до версии 1.0.2.1
 
Автор
I

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Обновил до версии 1.0.2.4
Добавил возможность получения "валидной" ссылки на поток в плейлист формата m3u в последствии его можно использовать в сторонних плеерах (пока не сменится токен...)
Добавил возможность получения адреса интернет страницы канала.
Исправлены выявленные ошибки.
 
Автор
I

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Обновил до версии 1.0.2.23
 

Николай2

Новичок
Сообщения
1
Репутация
0
Добрый день. Хотелось бы увидеть приложение в действии. Но exe с депозита удален, а скомилировать из исходника новый не удается, т.к. не получается найти библиотеку MyBass_dll.a3u. Что-то похожее нашел Bass.au3, но не подошло.
 
Верх