Jump to content



Photo

Revision3 Tv Player


  • Please log in to reply
No replies to this topic

#1 Datenshi

Datenshi

    Prodigy

  • Active Members
  • PipPipPip
  • 179 posts

Posted 10 August 2009 - 05:54 PM

Posted Image

This is something i spent my rainy day on, It's practically a gui with JW flv player embedded, it'll list all the episodes from all the shows by Revision3.com(tech talk and gadgets), they're pretty good shows i kinda just started watching them but their online player wasn't working for me, and it was a real pain in the A** not to be able to stream it properly in mplayer/vlc. Anyway, i only spent a couple of hours on this so it might not be super optimized >_< at least it works fine without any huge bugs(knock on wood).

Oyeah, i almost forgot...the GUI is kinda big(1050x590) so if you're on a low resolution you'll have to adjust the code, its big cause you can watch 720p HD.

If anyone can get fullscreen to work let me know, i tried but it wouldn't work.

I'll host a RAR file with the JW Flv player,compiled exe and source, On my server.
Revision3TvPlayer.rar

Here's the source in code tag:
Plain Text         
;Revision 3 TV player ;Author: Emanuel "Datenshi" Lindgren ;Credit: "ptrex" for player object code. http://www.autoitscript.com/forum/index.php?showtopic=65027&view=findpost&p=483970 ;Uses JW Flv Player ;http://www.longtailvideo.com/players/jw-flv-player/ Opt("GUIOnEventMode", 1) #include <GUIConstantsEX.au3> #include <GuiListView.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> #include <ListViewConstants.au3> #include <inet.au3> #include <string.au3> #Include <array.au3> Dim $PageLinks Dim $VidThumbnails FileInstall("player.swf","player.swf") ; Initialize error handler $oMyError = ObjEvent("AutoIt.Error","MyErrFunc") ; ---------------------------------- Declare objects ------------------------------- $oSWF = ObjCreate("ShockwaveFlash.ShockwaveFlash") ; -------------------------------------------- Main Gui --------------------------------- $hGui = GuiCreate("Revision3 TV", 1050, 590,-1, -1, BitOR($WS_SYSMENU, $WS_VISIBLE)) GUISetBkColor("0x292929") $DropdownShowSelect = GUICtrlCreateCombo("Tekzilla",50, 20, 150) ; create first item                      GUICtrlSetData(-1, "Systm|Hak5|Xlr8rtv|ScamSchool|TRS|ROFL|PixelPerfect|iFanboy|Jvsworld|HDnation|Filmriot|Diggnation|Diggdialogg|Diggreel|coop|Appjudgment", "Tekzilla") GUICtrlSetOnEvent($DropdownShowSelect,"ShowSelector") $DropdownVidQuality = GUICtrlCreateCombo("HD-Quality",200, 20, 150) ; create first item GUICtrlSetData(-1,"High-Quality|Low-Quality","HD-Quality") GUICtrlSetOnEvent($DropdownVidQuality,"QualitySelector") $hListView = GUICtrlCreateListView("Show Episodes", 792, 0,250,560) _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE_USEHEADER) $previewpic = GUICtrlCreatePic("", 568, 2, 0, 0);("", 568, 0, 201, 113) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") $oSWF_Object = GUICtrlCreateObj ($oSWF, 10, 100 , 770 , 450) GUICtrlSetStyle ( $oSWF_Object,  $WS_VISIBLE ) With $oSWF         .ScaleMode = 3 ;0 showall, 1 noborder, 2 exactFit, 3 noscale         .bgcolor = "505050"         .WMode = "transparent"         .allowScriptAccess = "Always"         .Quality = 1         .flashvars = "autostart=true&fullscreen=true&smoothing=false"         ;.Menu = "true" EndWith ShowSelector() GUISetOnEvent($GUI_EVENT_CLOSE, "GUIeventClose") GuiSetState() While 1     Sleep(100) WEnd ;------------------------------- Func ShowSelector($Quality = 1)     $whatshow = GUICtrlRead($DropdownShowSelect)     $Pool = "http://revision3.com/"&$whatshow&"/episodePage?type=recent&hideShow=1&hideArrows=1&type=recent&limit=500"     $source = _InetGetSource($Pool)     $PageLinks = StringRegExp($source,'href="(/.*?/.*?)"><img\sclass',3)     $VidThumbnails = StringRegExp($source,'/revision3/images/shows/[-a-zA-Z0-9\_\.]*\w/\d*/.*.jpg',3)     $VidNames = StringRegExp($source,'<br\s/>\s\s(.*)\s\s\(',3)     If IsArray($VidNames) = 0 Then $VidNames = StringRegExp($source,'(\w.*)\s\s\(',3)     Dim $items[Ubound($VidNames)]    _GUICtrlListView_DeleteAllItems($hListView)     For $x = 0 To Ubound($VidNames) -1     $items[$x] = GUICtrlCreateListViewItem($VidNames[$x],$hListView) Next     Endfunc ;---------------------------- Func QualitySelector() $whatQuality = GUICtrlRead($DropdownVidQuality) Switch $whatQuality     Case "HD-Quality"         Return 0     Case "High-Quality"         return 1     Case "Low-Quality"         Return 2 EndSwitch EndFunc ;---------------------------- Func _FileOpen($Hotlink = 0) $FileOpen = _URIEncode("http://bitcast-a.bitgravity.com/"&$Hotlink) $oSWF.GotoFrame(1) $oSWF.Movie = @ScriptDir & "\player.swf?file="&$FileOpen $oSWF.rewind $oSWF.flashvars = "autostart=true&fullscreen=true&smoothing=false" EndFunc Func GUIeventClose()     Exit EndFunc   ;==>GUIeventClose ;---------------------------- Func _URIEncode($sData) ; by Prog@ndy     Local $aData = StringSplit(BinaryToString(StringToBinary($sData,4),1),"")     Local $nChar     $sData=""     For $i = 1 To $aData[0]         $nChar = Asc($aData[$i])         Switch $nChar             Case 45, 46, 48-57, 65 To 90, 95, 97 To 122, 126                 $sData &= $aData[$i]             Case 32                 $sData &= "+"             Case Else                 $sData &= "%" & Hex($nChar,2)         EndSwitch     Next     Return $sData EndFunc ;---------------------------- Func SetPreviewImage($Index)     InetGet("http://bitcast-a.bitgravity.com"&$VidThumbnails[$Index],@Tempdir&"/"&$Index&"-R3tv.jpg")     GUICtrlSetImage($previewpic,@Tempdir&"/"&$Index&"-R3tv.jpg") Endfunc ;---------------------------- Func GetHotlink($LV_Index) $VideoPage = $PageLinks[$LV_Index] $Vidsource = _InetGetsource("http://revision3.com"&$VideoPage) $HotLink = StringRegExp($Vidsource,"/revision3/web/[-a-zA-Z0-9\_\.]*\w/\d*/.*[mp4|flv]",3) $QualityValue = QualitySelector() Return $HotLink[$QualityValue] EndFunc ;---------------------------- Func MyErrFunc() ; author ptrex   $HexNumber=hex($oMyError.number,8)   Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !"       & @CRLF  & @CRLF & _              "err.description is: "    & @TAB & $oMyError.description    & @CRLF & _              "err.windescription:"     & @TAB & $oMyError.windescription & @CRLF & _              "err.number is: "         & @TAB & $HexNumber              & @CRLF & _              "err.lastdllerror is: "   & @TAB & $oMyError.lastdllerror   & @CRLF & _              "err.scriptline is: "     & @TAB & $oMyError.scriptline     & @CRLF & _              "err.source is: "         & @TAB & $oMyError.source         & @CRLF & _              "err.helpfile is: "       & @TAB & $oMyError.helpfile       & @CRLF & _              "err.helpcontext is: "    & @TAB & $oMyError.helpcontext _             )   SetError(1)  ; to check for after this function returns Endfunc ;---------------------------- Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)     #forceref $hWnd, $iMsg, $iwParam     Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo     $hWndListView = $hListView     If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)     $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)     $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))     $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")     $iCode = DllStructGetData($tNMHDR, "Code")     Switch $hWndFrom         Case $hWndListView             Switch $iCode                 Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button                     $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)                     $Index = DllStructGetData($tInfo, "Index")                     SetPreviewImage($Index)                 Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button                     $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)                     $Index = DllStructGetData($tInfo, "Index")                     $Hotlink = GetHotlink($Index)                     _FileOpen($Hotlink)             EndSwitch     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_NOTIFY


Don't forget you'll need JW FLV Player in scriptdir and name it "player.swf", don't worry about it if you download the .rar its all in there.
Enjoy! and if you steal my code, gief credit :(

Edited by Datenshi, 10 August 2009 - 06:23 PM.









0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users