卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章1829本站已运行4109

AU3万能播放器 - 使用 APlayer SDK

前言:越来越多视频需要referer才能播放,而大部分播放器不能自动设置,导致无法播放,所以我开发这个简易的万能播放器。
最新的SDK
完整解码库
#pragma compile(Icon, H:\QXTOOLS\1.ico)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <APIDiagConstants.au3>
#include <StringConstants.au3>
#include <WinAPIReg.au3>
#include <GuiStatusBar.au3>
#include <GUIListView.au3>
#RequireAdmin
 
$APlayerGUI = GUICreate("迅雷播放器", 800, 650, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP))
 
_WinAPI_DllInstall ( "APlayerUI.dll" )
_WinAPI_DllInstall ( "APlayer.dll" )
$APlayerUI = ObjCreate("APlayerUI.Player.1")
$APlayer_ctrl = GUICtrlCreateObj($APlayerUI, 0, 0, 600, 500)
GUICtrlSetResizing($APlayer_ctrl, $GUI_DOCKAUTO)
$APlayer = $APlayerUI.GetAPlayerObject
 
$Edit1 = GUICtrlCreateEdit("", 10, 520, 780, 30,$ES_AUTOVSCROLL + $WS_VSCROLL)
Local $idWEBPLAY = GUICtrlCreateButton("播放", 10, 570, 85, 25)
 
$idmedia = GUICtrlCreateListView("参数|信息", 610, 0, 190,500)
_GUICtrlListView_SetExtendedListViewStyle ( $idmedia, $LVS_REPORT,$LVS_EX_GRIDLINES)
 
_GUICtrlListView_JustifyColumn($idmedia, 0, 2)
_GUICtrlListView_JustifyColumn($idmedia, 1, 2)
 
$StatusBar = _GUICtrlStatusBar_Create($APlayerGUI)
Dim $StatusBar_PartsWidth[2] = [400, -1]
_GUICtrlStatusBar_SetParts($StatusBar, $StatusBar_PartsWidth)
_GUICtrlStatusBar_SetMinHeight($StatusBar, 30)
 
_GUICtrlStatusBar_SetText($StatusBar,[url=home.php?mod=space&uid=1031268]@tab[/url] & "界面版本:" & $APlayerUI.GetVersion, 0)
_GUICtrlStatusBar_SetText($StatusBar,@TAB & "内核版本:" & $APlayer.GetVersion, 1)
 
GUISetState(@SW_SHOW)
 
GUIRegisterMsg($WM_SIZE, "WM_SIZE")
 
While 1
 
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
 
Func APlayerGetInfo()
$wh = $APlayer.GetVideoWidth & " X " & $APlayer.GetVideoHeight
$Videocodec = StringUpper($APlayer.GetConfig (220))
$Audiocodec = $APlayer.GetConfig (410)
$samplerate = $APlayer.GetConfig (412)
$samplebit = $APlayer.GetConfig (413)
;$Readspeed = $APlayer.GetConfig (41) & " KB/s"
 
_GUICtrlListView_DeleteAllItems ( $idmedia )
Local $APlayerInfo[0][2]
_ArrayAdd($APlayerInfo, "分辨率|"&$wh&"")
_ArrayAdd($APlayerInfo, "视频编码器|"&$Videocodec&"")
_ArrayAdd($APlayerInfo, "音频编码器|"&$Audiocodec&"")
_ArrayAdd($APlayerInfo, "采样率|"&$samplerate&"")
_ArrayAdd($APlayerInfo, "采样位数|"&$samplebit&"")
;_ArrayAdd($APlayerInfo, "读取速度|"&$Readspeed&"")
_GUICtrlListView_AddArray($idmedia, $APlayerInfo)
_GUICtrlListView_SetColumnWidth($idmedia, 0, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($idmedia, 1, $LVSCW_AUTOSIZE)
 
 
EndFunc
 
Func WM_SIZE($hWnd, $iMsg, $wParam, $lParam)
#forceref $hWnd, $iMsg, $wParam, $lParam
_GUICtrlStatusBar_Resize($StatusBar)
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_SIZE
 
Case $idWEBPLAY
$dyurl = GUICtrlRead($Edit1)
Local $testbili = StringInStr ($dyurl,"bilivideo")
Local $testhaokan = StringInStr ($dyurl,"haokan")
Local $testweburl = StringInStr ($dyurl,"http")
 
If $testbili > 0 Then
$APlayer.SetConfig(1106,"https://live.bilibili.com/")
ElseIf $testhaokan > 0 Then
$APlayer.SetConfig(1106,"https://haokan.baidu.com/")
ElseIf $testweburl > 0 Then
$surl = StringSplit ($dyurl,"/")
$referer = $surl[1] & "//" & $surl[3]
$APlayer.SetConfig(1106,$referer)
Else
$APlayer.SetConfig(1106,"")
EndIf
 
$APlayer.open ($dyurl)
Do
$APlayerState = $APlayer.GetState
Until $APlayerState = 5
APlayerGetInfo()
EndSwitch
WEnd
 
卓越飞翔博客
上一篇: 对c语言函数进行反汇编获取函数大小并复制到内存里执行
下一篇: at命令已被弃用,自用批处理自定关机

相关推荐

留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏