Jump to content
Sign in to follow this  
AuToItItAlIaNlOv3R

MediaPlayer ocx

Recommended Posts

AuToItItAlIaNlOv3R

Hi, i made a program that allow to play web radio, now i would like to calculate bitrate of .asx file.

For example i've this code :

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test", 145, 97, 302, 69)
$Button1 = GUICtrlCreateButton("Play", 8, 8, 131, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Stop", 8, 40, 131, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Kb/s", 104, 72, 27, 17)
$Label2 = GUICtrlCreateLabel("", 56, 72, 4, 4)
$Label3 = GUICtrlCreateLabel("Bitrate", 8, 72, 34, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$gMediaObject = _CreateWMPlayer()
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $gMediaObject.URL = "http://xxxx/xxxx.asx"
            ; i would like to send in $Label2 the bitrate how can i do this?
    EndSwitch
WEnd

Func _CreateWMPlayer()
    $Object = ObjCreate("WMPlayer.OCX.7")
    $Object.URL = ""
    Return $Object
EndFunc   ;==>_CreateWMPlayer

Now i would like to send in $Label2 the bitrate how can i do this?

Thank's a lot!

Share this post


Link to post
Share on other sites
doudou

Now i would like to send in $Label2 the bitrate how can i do this?

Try this:

$bitrate = $gMediaObject.CurrentMedia.GetItemInfo("bitrate") ; byte/s
$bitrate = Round(Number($bitrate) / 1024, 2)
GUICtrlSetData($Label2, "" & $bitrate)

UDFS & Apps:


DDEML.au3 - DDE Client + Server[*]
Localization.au3- localize your scripts[*]
TLI.au3 - type information on COM objects (TLBINF emulation)[*]
TLBAutoEnum.au3 - auto-import of COM constants (enums)[*]
AU3Automation - export AU3 scripts via COM interfaces
TypeLibInspector

- OleView was yesterday

Coder's last words before final release: WE APOLOGIZE FOR INCONVENIENCEĀ 

Share this post


Link to post
Share on other sites
AuToItItAlIaNlOv3R

It don't work, the code give me 0kb/s with all radio! Another solution?

Thank's a lot!

Share this post


Link to post
Share on other sites
doudou

It don't work, the code give me 0kb/s with all radio! Another solution?

This is the right solution! Your script has to wait until the media has loaded before you can read its attributes.

UDFS & Apps:


DDEML.au3 - DDE Client + Server[*]
Localization.au3- localize your scripts[*]
TLI.au3 - type information on COM objects (TLBINF emulation)[*]
TLBAutoEnum.au3 - auto-import of COM constants (enums)[*]
AU3Automation - export AU3 scripts via COM interfaces
TypeLibInspector

- OleView was yesterday

Coder's last words before final release: WE APOLOGIZE FOR INCONVENIENCEĀ 

Share this post


Link to post
Share on other sites
AuToItItAlIaNlOv3R

Dont work for me this is the code, when i add you code :mellow:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Test", 146, 98, 302, 69)
$Button1 = GUICtrlCreateButton("Play", 8, 8, 131, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Stop", 8, 40, 131, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Kb/s", 104, 72, 27, 17)
$Label2 = GUICtrlCreateLabel("", 56, 72, 44, 20)
$Label3 = GUICtrlCreateLabel("Bitrate", 8, 72, 34, 17)
GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###
$gMediaObject = _CreateWMPlayer()
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $gMediaObject.URL = "mms://85.248.7.162/EXPRES_LQ"
            $bitrate = $gMediaObject.CurrentMedia.GetItemInfo("bitrate") ; byte/s
            $bitrate = Round(Number($bitrate) / 1024, 2)
            GUICtrlSetData($Label2, "" & $bitrate)
            ; i would like to send in $Label2 the bitrate how can i do this?
        EndSwitch
WEnd

Func _CreateWMPlayer()
    $Object = ObjCreate("WMPlayer.OCX.7")
    $Object.URL = ""
    Return $Object
EndFunc   ;==>_CreateWMPlayer

It give me with all radio, bitrate 0 kbs...

Another solution?

Hi!

Share this post


Link to post
Share on other sites
BrettF

You're not listening to him

First point this is the wrong forum. Did you happen to miss the bit that said AutoItX, the COM/ActiveX version of AutoIt?

Example of going about it.

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Test", 146, 98, 302, 69)
$Button1 = GUICtrlCreateButton("Play", 8, 8, 131, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Stop", 8, 40, 131, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Kb/s", 104, 72, 27, 17)
$Label2 = GUICtrlCreateLabel("", 56, 72, 44, 20)
$Label3 = GUICtrlCreateLabel("Bitrate", 8, 72, 34, 17)
GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###
$gMediaObject = _CreateWMPlayer()
$timer = TimerInit ()

$CURRENTLY_PLAYING = False

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $gMediaObject.URL = "mms://85.248.7.162/EXPRES_LQ"
            $gMediaObject.Controls.play
            $CURRENTLY_PLAYING = TRUE
    EndSwitch

    If $CURRENTLY_PLAYING Then
        If TimerDiff ($timer) >= 1000 Then
            GUICtrlSetData($Label2, Round(Number($gMediaObject.CurrentMedia.GetItemInfo("bitrate")) / 1024, 2))
            $timer = TimerInit ()
        EndIf
    EndIf
WEnd

Func _CreateWMPlayer()
    $Object = ObjCreate("WMPlayer.OCX.7")
    $Object.URL = ""
    Return $Object
EndFunc   ;==>_CreateWMPlayer

Share this post


Link to post
Share on other sites
doudou

First point this is the wrong forum. Did you happen to miss the bit that said AutoItX, the COM/ActiveX version of AutoIt?

Yeah, he posted his question all around the place in different forums.

Example of going about it.

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Test", 146, 98, 302, 69)
$Button1 = GUICtrlCreateButton("Play", 8, 8, 131, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Stop", 8, 40, 131, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Kb/s", 104, 72, 27, 17)
$Label2 = GUICtrlCreateLabel("", 56, 72, 44, 20)
$Label3 = GUICtrlCreateLabel("Bitrate", 8, 72, 34, 17)
GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###
$gMediaObject = _CreateWMPlayer()
$timer = TimerInit ()

$CURRENTLY_PLAYING = False

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $gMediaObject.URL = "mms://85.248.7.162/EXPRES_LQ"
            $gMediaObject.Controls.play
            $CURRENTLY_PLAYING = TRUE
    EndSwitch

    If $CURRENTLY_PLAYING Then
        If TimerDiff ($timer) >= 1000 Then
            GUICtrlSetData($Label2, Round(Number($gMediaObject.CurrentMedia.GetItemInfo("bitrate")) / 1024, 2))
            $timer = TimerInit ()
        EndIf
    EndIf
WEnd

Func _CreateWMPlayer()
    $Object = ObjCreate("WMPlayer.OCX.7")
    $Object.URL = ""
    Return $Object
EndFunc   ;==>_CreateWMPlayer

This should work.

Another approach is to listen for PlayStateChange event:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Test", 146, 98, 302, 69)
$Button1 = GUICtrlCreateButton("Play", 8, 8, 131, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Stop", 8, 40, 131, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Kb/s", 104, 72, 27, 17)
$Label2 = GUICtrlCreateLabel("", 56, 72, 44, 20)
$Label3 = GUICtrlCreateLabel("Bitrate", 8, 72, 34, 17)
GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###
$gMediaObject = _CreateWMPlayer()
ObjEvent($gMediaObject, "WMPEvent_", "PlayStateChange")

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $gMediaObject.URL = "mms://85.248.7.162/EXPRES_LQ"
            $gMediaObject.Controls.play
    EndSwitch
WEnd

Func _CreateWMPlayer()
    $Object = ObjCreate("WMPlayer.OCX.7")
    $Object.URL = ""
    Return $Object
EndFunc   ;==>_CreateWMPlayer

Func WMPEvent_PlayStateChange($newState)
    If 3 = $newState Then
        Local $bitrate = $gMediaObject.CurrentMedia.GetItemInfo("bitrate") ; byte/s
        $bitrate = Round(Number($bitrate) / 1024, 2)
        GUICtrlSetData($Label2, "" & $bitrate)
    EndIf
EndFunc

UDFS & Apps:


DDEML.au3 - DDE Client + Server[*]
Localization.au3- localize your scripts[*]
TLI.au3 - type information on COM objects (TLBINF emulation)[*]
TLBAutoEnum.au3 - auto-import of COM constants (enums)[*]
AU3Automation - export AU3 scripts via COM interfaces
TypeLibInspector

- OleView was yesterday

Coder's last words before final release: WE APOLOGIZE FOR INCONVENIENCEĀ 

Share this post


Link to post
Share on other sites
BrettF

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×