Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Odtwarzacz MP3


Rekomendowane odpowiedzi

Opublikowano

Siemka.
Wrzucam tutaj kod z odtwarzaczem MP3 na niedawno rozstrzygnięty konkurs AutoIt3. Mam nadzieję, że trochę się z niego nauczycie ^^.
Zastrzegam sobie prawa do tego kodu. Proszę go nie kopiować/edytować bez mojej zgody i nie czerpać z niego korzyści dla własnej osoby.

Link do tematu z konkursem:

http://www.mpcforum.pl/topic/512862-dyskusja-konkurs-najlepszy-program-uzytkowy-w-autoit/

Kod:

http://wklej.org/id/668233/

Download (paczka z potrzebnymi plikami):

http://www40.zippyshare.com/v/19224932/file.html

Skan :

https://www.virustotal.com/file/d8ce5723ff2920ec33d55f93cd207f382c03c63499ecebcd88ce022a30220ebd/analysis/1326497565/

Kod:

 


#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=data\graphic\TrayIcon.ico
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;TO DO	Usuwanie powtarzajacych sie pozycji.
#include "data\include\Sound.au3"
#include <GuiListView.au3>
LoadFont(@ScriptDir & "\data\fonts\AGENCYR.ttf")
HotKeySet("^=", "VolumePlus")
HotKeySet("^{NUMPADADD}", "VolumePlus")
HotKeySet("^{NUMPADSUB}", "VolumeMinus")
HotKeySet("^-", "VolumeMinus")
Opt("TrayMenuMode", 3)
Opt("TrayAutoPause", 0)
Dim $sPlayList[1][2]
Global $iLast = 0
Global $SoundTitle = ''
Global $ObslugiwaneTypy[4] = [".mp3", ".wav", ".wma", ".mid"]
Global $szer = 230
Global $wys = 620
Global $Aktualny = -1, $AktualnieGrany = -1
Global $pause = True, $pause_tmp = ''
Global $Volume = 50
Global $licznik2 = 1
Global $a = _SoundPos($Aktualny)
Global $Repeat = 0 ;0 normalnie, 1 powtarza jeden kawalek, 2 leci losowo
$hGui = GUICreate("MP3 Player By Sopel", $szer, $wys)
GUISetBkColor(0xFFFFFF)
TraySetIcon("data\graphic\TrayIcon.ico")
TraySetToolTip("Tytuł: ")
$TrayTime = TrayCreateItem("Czas: ")
$TrayPause = TrayCreateItem("Pauza/Wnzów", -1, -1, 1)
$TrayPlay = TrayCreateItem("Odtwarzaj od początku")
$TrayNext = TrayCreateItem("Następny")
$TrayPrev = TrayCreateItem("Poprzedni")
$TrayRandom = TrayCreateItem("Odtwarzaj losowy")
$TrayExit = TrayCreateItem("Wyjdź z programu")
$hVolume = GUICtrlCreateLabel("Głośność: 50%", 10, 105, 100, 15, 0x1)
GUICtrlSetFont(-1, 8, 400, 0, "Verdana")
GUICtrlSetBkColor(-1, 0xFFFF00)
$hSliderVolume = GUICtrlCreateSlider(10, 120, 100, 20)
GUICtrlSetData(-1, 50)
GUICtrlSetLimit(-1, 100, 0)
GUICtrlSetBkColor(-1, 0xFFFFFF)
SoundSetWaveVolume(50)
$hButtonInfo = guictrlcreatebutton("INFO", 140, 125, 54, 16)
GUICtrlSetFont(-1, 8, 400, 0, "Verdana")
GUICtrlCreatePic("data\graphic\TimeBackground.bmp", 10, 10, 210, 90)
$hTitle = GUICtrlCreateLabel("", 20, 18, 3000, 30)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetFont(-1, 18, 400, 0, "Agency FB")
GUICtrlCreatePic("data\graphic\TimeBackgroundPart2.bmp", 210, 10, 30, 90)
$hTime = GUICtrlCreateLabel("00:00:00", 20, 40, 140, 50)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetFont(-1, 36, 400, 0, "Agency FB")
$hTimeElapsed = GUICtrlCreateLabel("/00:00:00", 160, 70, 50, 20)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetFont(-1, 12, 400, 0, "Agency FB")
$hButtonRepeat = GUICtrlCreatePic("data\graphic\RepeatButton.bmp", 127, 105, 20, 15)
GUICtrlSetTip(-1, "Odtwarza w kółko jeden utwór")
$hButtonRandom = GUICtrlCreatePic("data\graphic\RandomButton.bmp", 157, 105, 20, 15)
GUICtrlSetTip(-1, "Odtwarza losowo utwory")
$hButtonDefault = GUICtrlCreatePic("data\graphic\DefaultButtonOn.bmp", 187, 105, 20, 15)
GUICtrlSetTip(-1, "Po zakończeniu utworu odtwarza następny na liście")
$hButtonPause = GUICtrlCreatePic("data\graphic\PauseButton.bmp", 15, 145, 40, 40)
GUICtrlSetTip(-1, "Zapauzuj aktualnie grany utwór")
$hButtonPlay = GUICtrlCreatePic("data\graphic\PlayButton.bmp", 65, 145, 40, 40)
GUICtrlSetTip(-1, "Odtwórz zaznaczony utwór")
$hButtonPrevorius = GUICtrlCreatePic("data\graphic\PrevoriusButton.bmp", 115, 145, 40, 40)
GUICtrlSetTip(-1, "Odtwórz poprzedni utwór")
$hButtonNext = GUICtrlCreatePic("data\graphic\NextButton.bmp", 165, 145, 40, 40)
GUICtrlSetTip(-1, "Odtwórz następny utwór")
$hPlayList = GUICtrlCreateListView("", 10, 190, 210, 351, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT, $LVS_NOSORTHEADER))
GUICtrlSetFont(-1, 8)
_GUICtrlListView_SetExtendedListViewStyle($hPlayList, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_FLATSB))
_GUICtrlListView_AddColumn($hPlayList, "Tytuł", 150)
_GUICtrlListView_AddColumn($hPlayList, "Czas", 60)
$hIloscWierszy = GUICtrlCreateLabel("Ilosc pozycji: 0", 135, 584, 100, 20)
$hAdd = GUICtrlCreatePic("data\graphic\AddButton.bmp", 10, 548, 62, 50)
GUICtrlSetTip(-1, "Menu dodawania plików do playlisty")
$OptionsDummy = GUICtrlCreateDummy()
$OptionsContext = GUICtrlCreateContextMenu($OptionsDummy)
$hDodajFolder = GUICtrlCreateMenuItem("Dodaj folder...", $OptionsContext)
$hDodajPlik = GUICtrlCreateMenuItem("Dodaj plik...", $OptionsContext)
;GUICtrlSetTip( -1, "Label Message")
$hDelete = GUICtrlCreatePic("data\graphic\DeleteButton.bmp", 72, 548, 62, 50)
GUICtrlSetTip(-1, "Menu usuwania plików z playlisty")
$OptionsDummy2 = GUICtrlCreateDummy()
$OptionsContext2 = GUICtrlCreateContextMenu($OptionsDummy2)
$hUsunZaznaczone = GUICtrlCreateMenuItem("Usuń zaznaczone...", $OptionsContext2)
$hUsunWszystkie = GUICtrlCreateMenuItem("Usuń wszystkie...", $OptionsContext2)
$hUpArrow = GUICtrlCreatePic("data\graphic\UpArrow.bmp", 155, 548, 20, 30)
GUICtrlSetTip(-1, "Przenosi zaznaczone elementy w górę")
$hDownArrow = GUICtrlCreatePic("data\graphic\DownArrow.bmp", 180, 548, 20, 30)
GUICtrlSetTip(-1, "Przenosi zaznaczone elementy w dół")
_GUICtrlListView_SetItemCount($hPlayList, 2000)
GUISetState()
AdlibRegister("Title", 300)
Dim $DoPodswietlenia[1]
While 1
If $pause_tmp <> $pause Then
  If $pause Then
   GUICtrlSetImage($hButtonPause, @ScriptDir & "\data\graphic\PauseButtonOn.bmp")
   TrayItemSetState($TrayPause, 1)
  Else
   GUICtrlSetImage($hButtonPause, @ScriptDir & "\data\graphic\PauseButton.bmp")
   TrayItemSetState($TrayPause, 4)
  EndIf
  $pause_tmp = $pause
EndIf
If GUICtrlRead($hSliderVolume) <> $Volume Then
  $Volume = GUICtrlRead($hSliderVolume)
  SetVolume($hSliderVolume, $Volume)
EndIf
If $a <> _SoundPos($Aktualny) Then
  PiszCzas(_SoundPos($Aktualny))
  $a = _SoundPos($Aktualny)
EndIf
If _SoundPos($Aktualny) >= _SoundLength($Aktualny) And $AktualnieGrany > -1 Then NextSound(1)
$nMsg = GUIGetMsg()
Switch $nMsg
  case $hButtonInfo
   MsgBox(64, 'Informacja', "Skróty klawiszowe: " & @CRLF & "CTRL -  | Zmniejsz głośność" & @CRLF & "CTRL +  | Zwiększ głośność" & @CRLF & @CRLF & @CRLF & "Program akceptuje formaty .mp3; .wav" & @CRLF & @CRLF &"Autor: Sopel")
  Case -3
   Exit
  Case $hButtonRandom
   UstawNaOFF()
   GUICtrlSetImage($hButtonRandom, @ScriptDir & "\data\graphic\RandomButtonOn.bmp")
   $Repeat = 2
  Case $hButtonDefault
   UstawNaOFF()
   GUICtrlSetImage($hButtonDefault, @ScriptDir & "\data\graphic\DefaultButtonOn.bmp")
   $Repeat = 0
  Case $hButtonRepeat
   UstawNaOFF()
   GUICtrlSetImage($hButtonRepeat, @ScriptDir & "\data\graphic\RepeatButtonOn.bmp")
   $Repeat = 1
  Case $hUpArrow
   $licznik3 = 0
   For $i = 0 To $iLast
	$czy = False
	If _GUICtrlListView_GetItemSelected($hPlayList, $i) Then
	 If $i > 0 Then
	  GuiCtrlListViewSwapItems($hPlayList, $i, $i - 1)
	  $licznik3 += 1
	  ReDim $DoPodswietlenia[$licznik3 + 10]
	  $DoPodswietlenia[$licznik3 - 1] = $i - 1
	 EndIf
	EndIf
   Next
   For $i = 0 To $licznik3 - 1
	_GUICtrlListView_SetItemSelected($hPlayList, $DoPodswietlenia[$i], 1)
   Next
  Case $hDownArrow
   $licznik3 = 0
   For $i = $iLast To 0 Step -1
	If _GUICtrlListView_GetItemSelected($hPlayList, $i) Then
	 If $i < $iLast - 1 Then
	  GuiCtrlListViewSwapItems($hPlayList, $i, $i + 1)
	  $licznik3 += 1
	  ReDim $DoPodswietlenia[$licznik3 + 10]
	  $DoPodswietlenia[$licznik3 - 1] = $i + 1
	 EndIf
	EndIf
   Next
   For $i = 0 To $licznik3 - 1
	_GUICtrlListView_SetItemSelected($hPlayList, $DoPodswietlenia[$i], 1)
   Next
  Case $hAdd
   ShowMenu($hGui, $nMsg, $OptionsContext)
  Case $hDelete
   ShowMenu($hGui, $nMsg, $OptionsContext2)
  Case $hDodajFolder
   DodajFolder()
   GUICtrlSetData($hIloscWierszy, "Ilosc Pozycji: " & _GUICtrlListView_GetItemCount($hPlayList))
  Case $hDodajPlik
   DodajPlik()
   GUICtrlSetData($hIloscWierszy, "Ilosc Pozycji: " & _GUICtrlListView_GetItemCount($hPlayList))
  Case $hUsunZaznaczone
   UsunZaznaczone()
  Case $hUsunWszystkie
   UsunWszystkie()
  Case $hButtonPause
   ButtonPause()
  Case $hButtonPlay
   ButtonPlay()
  Case $hButtonPrevorius
   Prevorius()
  Case $hButtonNext
   NextSound()
EndSwitch
$nMsg = TrayGetMsg()
Switch $nMsg
  Case $TrayNext
   NextSound()
  Case $TrayPause
   ButtonPause()
  Case $TrayPlay
   ButtonPlay()
  Case $TrayRandom
   NextSound(2)
  Case $TrayPrev
   Prevorius()
  Case $TrayExit
   Exit
EndSwitch
Sleep(1)
WEnd
func DeleteToolTip()
ToolTip("")
AdlibUnRegister("DeleteToolTip")
endfunc
func VolumePlus()
if $Volume < 100 then
$Volume += 1
SetVolume($hSliderVolume, $Volume, 0)
  endif
;~   TrayTip ( "", "Głośność: " & $Volume & "%",2000  )
ToolTip("Głośność: " & $Volume & "%")
EndFunc
;VolumeToColor($iVolume)
func SetVolume($hHandle, $iVar, $bButton = 1)
if $bButton = 0 then
AdlibUnRegister("DeleteToolTip")
  AdlibRegister("DeleteToolTip", 1500)
  endif
GUICtrlsetdata($hSliderVolume, $Volume)
  GUICtrlSetData($hVolume, "Głośność: " & $Volume & "%")
  SoundSetWaveVolume($Volume)
  GUICtrlSetbkColor($hVolume, VolumeToColor($Volume))
endfunc
func VolumeMinus()
if $Volume > 0 then
  $Volume -= 1
  SetVolume($hSliderVolume, $Volume, 0)
  endif
;~   TrayTip ( "", "Głośność: " & $Volume & "%",2000  )
ToolTip("Głośność: " & $Volume & "%")
EndFunc
Func ButtonPause()
If $AktualnieGrany > -1 Then
  $pause = Not $pause
  If $pause Then _SoundPause($Aktualny)
  If Not $pause Then _SoundResume($Aktualny)
EndIf
EndFunc   ;==>ButtonPause
Func ButtonPlay()
If $iLast > 0 Then
  $pause = False
  For $i = 0 To $iLast
   If _GUICtrlListView_GetItemSelected($hPlayList, $i) Then
	$AktualnieGrany = $i
	ExitLoop
   EndIf
   If $i = $iLast Then $AktualnieGrany = 0
  Next
  _SoundStop($Aktualny)
  Play()
EndIf
EndFunc   ;==>ButtonPlay
Func Prevorius()
If $iLast > 0 Then
  $pause = False
  _GUICtrlListView_SetItemSelected($hPlayList, $AktualnieGrany, 0)
  _SoundStop($Aktualny)
  $AktualnieGrany -= 1
  If $AktualnieGrany = -1 Then $AktualnieGrany = $iLast - 1
  Play()
EndIf
EndFunc   ;==>Prevorius
Func UstawNaOFF()
GUICtrlSetImage($hButtonRandom, @ScriptDir & "\data\graphic\RandomButton.bmp")
GUICtrlSetImage($hButtonDefault, @ScriptDir & "\data\graphic\DefaultButton.bmp")
GUICtrlSetImage($hButtonRepeat, @ScriptDir & "\data\graphic\RepeatButton.bmp")
EndFunc   ;==>UstawNaOFF
Func Play()
$Aktualny = _SoundOpen($sPlayList[$AktualnieGrany][0])
_SoundPlay($Aktualny)
_GUICtrlListView_SetItemSelected($hPlayList, $AktualnieGrany)
GUICtrlSetData($hTimeElapsed, "/" & _SoundLength($Aktualny))
$SoundTitle = _GUICtrlListView_GetItemText($hPlayList, $AktualnieGrany)
$licznik2 = 1
$a = _SoundPos($Aktualny)
TraySetToolTip("Tytuł: " & $SoundTitle)
TrayTip("", $SoundTitle, 3000)
EndFunc   ;==>Play
Func NextSound($iKoniec = 0)
If $iLast > 1 Or $iKoniec = True Then
  Local $tmp
  $pause = False
  _SoundStop($Aktualny)
  If $iLast > 0 Then
   CzyscZaznaczenie()
   _GUICtrlListView_SetItemSelected($hPlayList, $AktualnieGrany, 0)
   $AktualnieGrany += 1
   If (($iKoniec = 1 And $Repeat = 2) Or $iKoniec = 2) And $iLast > 1 Then
	$tmp = $AktualnieGrany - 1
	Do
	 $AktualnieGrany = Random(0, $iLast - 1, 1)
	Until $AktualnieGrany <> $tmp
   ElseIf $iKoniec = 1 And $Repeat = 1 Then
	$AktualnieGrany -= 1
   EndIf
   If $AktualnieGrany >= $iLast Then $AktualnieGrany = 0
   Play()
  EndIf
EndIf
EndFunc   ;==>NextSound
Func Title()
If $AktualnieGrany > -1 Then
  If $licznik2 = 1 Then
   $title = StringMid($SoundTitle, $licznik2)
   GUICtrlSetData($hTitle, $title)
  EndIf
  If $licznik2 > 10 Then
   $title = StringMid($SoundTitle, $licznik2 - 10)
   GUICtrlSetData($hTitle, $title)
   If $licznik2 - 10 = StringLen($SoundTitle) Then $licznik2 = 0
  EndIf
  If $licznik2 > 10 Then
   _WinAPI_SetWindowText($hGui, $title)
  Else
   _WinAPI_SetWindowText($hGui, "MP3 Player By Sopel")
  EndIf
  $licznik2 += 1
EndIf
EndFunc   ;==>Title
Func GuiCtrlListViewSwapItems($hHandle, $iIndex1, $iIndex2)
Local $tmp[2]
_ArraySwap($sPlayList[$iIndex1][0], $sPlayList[$iIndex2][0])
_ArraySwap($sPlayList[$iIndex1][1], $sPlayList[$iIndex2][1])
$tmp[0] = _GUICtrlListView_GetItemText($hHandle, $iIndex1, 0)
$tmp[1] = _GUICtrlListView_GetItemText($hHandle, $iIndex1, 1)
_GUICtrlListView_SetItemText($hHandle, $iIndex1, _GUICtrlListView_GetItemText($hHandle, $iIndex2, 0), 0)
_GUICtrlListView_SetItemText($hHandle, $iIndex1, _GUICtrlListView_GetItemText($hHandle, $iIndex2, 1), 1)
_GUICtrlListView_SetItemText($hHandle, $iIndex2, $tmp[0], 0)
_GUICtrlListView_SetItemText($hHandle, $iIndex2, $tmp[1], 1)
;to do zmienienie podswietlania
_GUICtrlListView_SetItemSelected($hHandle, $iIndex1, 0)
_GUICtrlListView_SetItemSelected($hHandle, $iIndex2, 0)
EndFunc   ;==>GuiCtrlListViewSwapItems
Func CzyscZaznaczenie()
For $i = 0 To $iLast
  _GUICtrlListView_SetItemSelected($hPlayList, $i, 0)
Next
EndFunc   ;==>CzyscZaznaczenie
Func PiszCzas($sTime)
TrayItemSetText($TrayTime, $sTime & "/" & _SoundLength($Aktualny))
$sTime = StringRegExpReplace($sTime, '1', ' 1')
GUICtrlSetData($hTime, $sTime)
EndFunc   ;==>PiszCzas
Func DodajFolder()
$hDir = FileSelectFolder("Wybierz folder z plikami muzycznymi do załadowania...", @DesktopDir, 2)
Local $FileList
Local $Rozsz
$FileList = _FileListToArray($hDir)
For $i = 1 To $FileList[0]
  $Rozsz = StringRight($FileList[$i], 4)
  For $ii = 0 To UBound($ObslugiwaneTypy) - 1
   If $Rozsz = $ObslugiwaneTypy[$ii] Then
	ReDim $sPlayList[$iLast + 10][2]
	$sPlayList[$iLast][0] = $hDir & '\' & $FileList[$i]
	$sPlayList[$iLast][1] = _SoundLength($hDir & '\' & $FileList[$i])
	_GUICtrlListView_AddItem($hPlayList, $FileList[$i])
	_GUICtrlListView_AddSubItem($hPlayList, $iLast, _SoundLength($hDir & '\' & $FileList[$i]), 1)
	$iLast += 1
   EndIf
  Next
Next
EndFunc   ;==>DodajFolder
Func DodajPlik()
$hFile = FileOpenDialog("Wybierz plik...", @DesktopDir, "Pliki muzyczne (*.mp3; *.wav; *.wma; *.mid)", 4)
$hFile = StringSplit($hFile, "|")
ReDim $sPlayList[$iLast + $hFile[0] + 5][2]
;~  #include <array.au3>
;~  _ArrayDisplay($hFile)
if $hFile[0] > 1 then
for $i = 2 to $hFile[0]
If $hFile[$i] <> '' Then
  if _SoundLength($hFile[1] & "\" & $hFile[$i]) = -1 then
   MsgBox(16, '', 'Zbyt duża szybkość transmisji. Nie mogę czytać.')
   else
  $sPlayList[$iLast][0] = $hFile[$i]
  $sPlayList[$iLast][1] = _SoundLength($hFile[1] & "\" & $hFile[$i])
  _GUICtrlListView_AddItem($hPlayList, UtnijSciezke($sPlayList[$iLast][0]))
  _GUICtrlListView_AddSubItem($hPlayList, $iLast, $sPlayList[$iLast][1], 1)
  $iLast += 1
  endif
EndIf
next
Else
If $hFile[1] <> '' Then
if _SoundLength($hFile[1]) = -1 then
   MsgBox(16, '', 'Zbyt duża szybkość transmisji. Nie mogę czytać.')
   else
$sPlayList[$iLast][0] = $hFile[1]
  $sPlayList[$iLast][1] = _SoundLength($hFile[1])
  _GUICtrlListView_AddItem($hPlayList, UtnijSciezke($sPlayList[$iLast][0]))
  _GUICtrlListView_AddSubItem($hPlayList, $iLast, $sPlayList[$iLast][1], 1)
  $iLast += 1
  endif
  endif
endif
EndFunc   ;==>DodajPlik
Func UsunWszystkie()
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hPlayList))
For $i = 0 To UBound($sPlayList) - 1
  $sPlayList[$i][0] = ''
  $sPlayList[$i][1] = ''
Next
$iLast = 0
ReDim $sPlayList[11][2]
$AktualnieGrany = -1
MsgBox(64, '', 'Lista utworów została wyczyszczona.')
EndFunc   ;==>UsunWszystkie
Func UsunZaznaczone()
$czy2 = False
$licznik = 0
For $i = 0 To $iLast - 1
  If _GUICtrlListView_GetItemSelected($hPlayList, $i) Then
   If $i = $AktualnieGrany Then $czy2 = True
   For $ii = $i - $licznik To $iLast - 1
	$sPlayList[$ii][0] = $sPlayList[$ii + 1][0]
	$sPlayList[$ii][1] = $sPlayList[$ii + 1][1]
   Next
   $iLast -= 1
   $licznik += 1
  EndIf
Next
If $licznik > 0 And $czy2 Then $AktualnieGrany = -1
ReDim $sPlayList[$iLast - $licznik + 10][2]
_GUICtrlListView_DeleteItemsSelected(GUICtrlGetHandle($hPlayList))
MsgBox(64, '', 'Wybrane elementy listy zostały usunięte.')
EndFunc   ;==>UsunZaznaczone
Func UtnijSciezke($sPath)
Local $sSplitPath
$sSplitPath = StringSplit($sPath, '\')
Return $sSplitPath[$sSplitPath[0]]
EndFunc   ;==>UtnijSciezke
Func ShowMenu($hWnd, $CtrlID, $nContextID)
Local $arPos, $x, $y
Local $hMenu = GUICtrlGetHandle($nContextID)
$arPos = ControlGetPos($hWnd, "", $CtrlID)
$x = $arPos[0]
$y = $arPos[1] + $arPos[3]
ClientToScreen($hWnd, $x, $y)
TrackPopupMenu($hWnd, $hMenu, $x, $y)
EndFunc   ;==>ShowMenu
Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
Local $stPoint = DllStructCreate("int;int")
DllStructSetData($stPoint, 1, $x)
DllStructSetData($stPoint, 2, $y)
DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))
$x = DllStructGetData($stPoint, 1)
$y = DllStructGetData($stPoint, 2)
$stPoint = 0
EndFunc   ;==>ClientToScreen
Func TrackPopupMenu($hWnd, $hMenu, $x, $y)
DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
EndFunc   ;==>TrackPopupMenu
Func LoadFont($Fontname)
		 $s_p = DllStructCreate("char[" & StringLen($Fontname) + 1 & "]")
		 DllStructSetData($s_p, 1, $Fontname)
		 $msg = DllCall("gdi32.dll", "int", "AddFontResource", "ptr", DllStructGetPtr($s_p))
		 If @error = 1 Then MsgBox(0, "DLLcall", "unable to use the DLL file")
		 If @error = 2 Then MsgBox(0, "DLLcall", "unknown return type")
		 Return $msg[0]
	 EndFunc;==>_LoadFont
  func VolumeToColor($iVolume)
   local $iRGB[2]
   if $iVolume >= 0 and $iVolume <= 50 Then
	$iRGB[0] = int($iVolume * (255/50))
	$iRGB[1] = 255
   endif
	  if $iVolume > 50 and $iVolume <= 100 Then
	$iRGB[1] = int(255 - ($iVolume * (255/50)))
	$iRGB[0] = 255
   endif
   $iHEXRGB = "0x" & hex($iRGB[0],2) & hex($iRGB[1],2) & "00"
   return $iHEXRGB
   endfunc

 



Piszcie opinie, pomysły, krytykujcie. Jestem otwarty na wszystkie sensowne posty.

Opublikowano

Gratulacje Sopel ^^

Wygrałeś chyba dlatego, że miałeś lepszą szatę graficzną i po prostu program jest bardziej "użytkowy" niż mój ^^

 

Co do programiku, brakuje mi zapisywania playlisty, dwukliku w playliście i przewijania..

Napisałem kiedyś takiego playera z przewijaniem i innymi duperelami, ale na konkurs chciałem zrobić coś wyjątkowego ^^

Pewnie dlatego też przegrałem =d

Opublikowano
Napisałem kiedyś takiego playera z przewijaniem i innymi duperelami, ale na konkurs chciałem zrobić coś wyjątkowego ^^

Pewnie dlatego też przegrałem =d

Przegiąłeś pałę. Tyle Ci powiem.

 

Co do programu to znalazłem buga. Gdy próbujesz odtworzyć plik, który ma 1s długości to odtwarza niepoprawnie. Ciągle powtarza.

 

@DOWN

Po co pytasz jak wiesz?

Nie chcecie to nie bierzcie udziału.

Opublikowano

Protecto z czym przegiął pałę? :P Ja też myslalem ze odtwarzacz to ostatnia rzecz jaka będzie mogła wygrać konkurs i że szukacie czegoś z dobrą ideą rokującą na przyszłość :)

Gratulacje Sopel znowu :D Fajny odtwarzacz , fajna oprawa graficzna ale mam lekką urazę do jury bo tego jest w necie od groma :P

 

M4niak co napisałeś jeśli można wiedzieć ?:)

Opublikowano

Praca była najlepsza pod względem wykonania. Cytat z mojej oceny:

Odtwarzacz muzyki. Fajny, GUI nie jest takie surowe i odstraszające, funkcji może nie ma dużo, ale te które są to działają. Dałbym 10pkt, gdyby ten program komuś się przydał. Jakby na necie nie było pełno lepszych odtwarzaczy.
W sumie to Wojtek ma rację, to powinno być oceniane na podstawie przydatności, tak jak głosi temat konkursu :)
Opublikowano

Ja też często rozmyślałem czy to na pewno jest program użytkowy, który ma jakieś przydatne funkcje (czy zalicza się do grona programów wspomagających czy jakoś tak), jednak bardziej nastawiłem się, że będzie oceniane wykonanie. Pomysł na odtwarzacz mp3 wziął się z tego, że nic lepszego nie potrafiłem wymyślić, a także z tego, że kiedyś miałem na myśli napisanie tego typu aplikacji (do czego się w końcu nie zabrałem). Ale jednak oryginalność też powinna być brana pod uwagę, ale to już jury sobie kryteria wymyślały ^^.

 

Co do programu to znalazłem buga. Gdy próbujesz odtworzyć plik, który ma 1s długości to odtwarza niepoprawnie. Ciągle powtarza.

mam domysły dlaczego, ale nie ma nawet sensu tego zmieniać. Kto takich rzeczy słucha ;p?

 

Co do programiku, brakuje mi zapisywania playlisty, dwukliku w playliście i przewijania..

Miałem to na myśli, ale lenistwo wzięło góre ;p.

Opublikowano

Protecto nie potrzebnie się denerwujesz , chcę brać udział w Twoich konkursach bo są przydatne i pomagają ale przyjmij też czasem krytykę :)

Po prostu wyrażam swoją opinię a póki co to nie jest na tym forum karane na szczęście ;)

 

Sopel skąd wziąłeś taką grafikę? Sam zrobiłeś?:)

Podoba mi się a mam pomysł na pewną grę i chciałbym wiedzieć :P

Opublikowano
Sopel skąd wziąłeś taką grafikę? Sam zrobiłeś?

Zlepek obrazków z google ;p. Wycinałem w paintNET/Gimp 2.6

button pausy (czerwony) zrobiłem w gimpie łącząc go z czerwoną warstwą ustawiając tam jakiś tryb łączenia na bodajże kolor.

 

PS. jeszcze są 3 obrazki, które zmieniają tryb odtwarzania muzyki (ciągły, random, powtórz) są one z winapma

Opublikowano
Opublikowano

Przegiąłeś pałę. Tyle Ci powiem.

 

Nie rozumiem, ale bardzo mi miło z tego powodu..

Fakt, faktem, 2 miejsce to nie tak źle..

 

Po co pytasz jak wiesz?

Nie chcecie to nie bierzcie udziału.

 

Ach, no faktycznie..

Konkurs to dla naszej przyjemności ?

 

M4niak co napisałeś jeśli można wiedzieć ? :)

 

Nic ciekawego, brak weny twórczej, czasu i chęci..

 

 

123vfw.png

Ale zło...

 

 

Opublikowano

@up. Fajny program, doby pomysł miałeś, jednak przydałoby się więcej funkcji. Chyba napiszę coś takiego we własnym zakresie w wolnym czasie ;p. Łap lajka

Opublikowano

M4niak nie zachowuj się jak obrażony nastolatek , to czy ktoś ma gorszy dzień nigdy nie wpływa na ocenę zrozum :)

Po cholere tworzyć napiętą atmosfere w dziale jak i tak nas mało jest ;)

Opublikowano

Ja? Nigdy..

 

Zawsze można odwrócić kota ogonem..

 

W konkursie startujemy nie dla swojej przyjemności, ale żeby ożywić trochę ten dział...

Więc niech Protecto nie wyskakuje z tekstem, że przegiąłem pałę..

Bo w ogóle nie wiem, co mu leży na sercu w tym momencie..

Zamiast walnąć prosto z mostu o co mu chodzi, to owija w bawełnę..

 

Koniec spamu i dziękuję za moje 3 grosze..

 

Przepraszam Sopelek za syf w Twoim temacie ^^

  • 10 miesięcy temu...
Opublikowano

To twoie mp3 przydaie sje tylko do przyciszania muzyki na youtube -.-

Ciulu tempy, to saper jes melanżu nimo z frajerami nie pijam !

  • 8 miesięcy temu...
  • 3 miesiące temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...