การเขียนcodeเพื่อสั่งให้ไฟล์วีดีโอเล่นวน
กระทู้เก่าบอร์ด อ.Yeadram

 1,212   7
URL.หัวข้อ / URL
การเขียนcodeเพื่อสั่งให้ไฟล์วีดีโอเล่นวน

หนูเขียนCodeเพื่อเปิดไฟล์วีดีโอ ซึ่งมันจะเปิดเล่นโดย Windows Media Player
Code ดังนี้ Application.FollowHyperlink Me.Text1
สิ่งที่ต้องการคือ
เมื่อไฟล์วีดีโอเปิดเล่นแล้วจะเล่นจนจบ จากนั้นต้องการให้มันเริ่มเล่นใหม่อีกครั้ง
ความหมายคือไฟล์วีดีโอไฟล์เดียวให้เล่นวนไปเรื่อยๆ เล่นจบก็กลับมาเล่นใหม่อย่างนี้เรื่อยไป
จะต้องเขียนCodeอย่างไรคะ

7 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R17954
ขออธิบายหน่อยนะครับ
ประเด็นแรก:
การเรียกใช้คำสั่ง Application.FollowHyperlink เป็นการเรียกเปิดไฟล์เป้าหมายโดยให้ค่าพาธและชื่อไฟล์ไปเท่านั้น ไม่ได้ชี้เฉพาะเจาะจงไปว่าจะใช้โปรแกรมอะไรเปิดไฟล์นี้ ทั้งนี้จึงขึ้นอยู่กับตัว Windows เองว่าจะใช้โปรแกรมอะไรในการเปิดหรือเราเซ็ทโปรแกรมอะไรไว้ให้เป็นค่าเริ่มต้นของ windows ดังนั้นหากนำไฟล์ MS Access ไปใช้เครื่องอื่น ก็อยู่ที่ว่าค่าเริ่มต้นที่ตั้งไว้ใน Windows เครื่องนั้นจะตั้งให้เปิดไฟล์วีดีโอด้วยโปรแกรมอะไร ซึ่งอาจไม่ใช่ Media Player ก็ได้
แนะนำ:
หากต้องการเจาะจงกำหนดให้เปิดไฟล์วีดีโอโดยใช้โปรแกรม Media Player ให้ใช้คำสั่งดังนี้
Shell "C:\Program Files\Windows Media Player\wmplayer.exe " & Me.Text1, 1

ประเด็นสอง:
คุณต้องการให้วิดีโอเล่นวนไปเรื่อยๆ สำหรับ Media Player ให้กดที่ปุ่ม Turn Repeat On/Off แล้วโปรแกรมมันก็จะเล่นวนให้ในครั้งต่อๆไป
แต่ถ้าหากต้องการสั่งให้ Repeat ด้วยคำสั่งเลย โดยไม่ต้องกดปุ่มที่โปรแกรม Media Player เท่าที่ดู Media Player ไม่มีพารามิเตอร์สำหรับการกำหนดค่า repeat มีแต่อย่างอื่นเช่น เปิดแล้วให้ภาพเต็มจอก็ใช้ /fullscreen
Shell "C:\Program Files\Windows Media Player\wmplayer.exe /fullscreen " & Me.Text1, 1

ดังนั้นผมว่าอาจต้องใช้การแก้รีจีสตรีของ Windows แทน (หากต้องการทำจริงๆ)

สรุป: คำสั่งทั้งหมดที่คุณต้องการจะได้ประมาณนี้ครับ
    Dim myWS As Object
    Set myWS = CreateObject("WScript.Shell")
    If myWS.RegRead("HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences\ModeLoop") <> 1 Then
        myWS.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences\ModeLoop", "1", "REG_DWORD"
    End If
    Shell "C:\Program Files (x86)\Windows Media Player\wmplayer.exe /fullscreen " & Me.Text1, 1


ปรับใช้ดูครับ
2 @R17956
แก้ไข
    Dim myWS As Object

    Set myWS = CreateObject("WScript.Shell")

    If myWS.RegRead("HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences\ModeLoop") <> 1 Then

        myWS.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences\ModeLoop", "1", "REG_DWORD"

    End If

    Shell "C:\Program Files\Windows Media Player\wmplayer.exe /fullscreen " & Me.Text1, 1
3 @R17958
ขอบคุณค่ะอาจารย์
หนูจะลองเอาไปใช้ก่อนนะคะได้ผลอย่างไรจะแจ้งให้ทราบค่ะ
4 @R17959
สูตรของอาจารย์ที่ให้มาใช้ได้ดียอดเยี่ยมเลยค่ะ ขอบคุณค่ะ

หนูขอตั้งคำถามใหม่ค่ะ
บนForm ชื่อ F1 มีTextBox ชื่อ Text1 มีข้อมูล D:\VDO1.avi
บนForm นี้ หนูสร้าง Windows Media Player โดยใช้ เครื่องมือ ActiveX ชื่อ Player1

การใช้งาน
เมื่อคลิกที่ Text1 จะเปิดเล่นVDO (โดยWindows Media Playerที่สร้างขึ้นมาชื่อ Player1 ทันที)ตาม Path ที่อยู่ใน Text1

หนูเขียนCode ดังนี้
Me.Player1.URL = [Forms]![F1]![Text1]
มันเปิดเล่นได้บนWindows Media Playerที่สร้างขึ้นมาชื่อ Player1ค่ะ

สิ่งที่ต้องการคือ
ให้มันเล่นวนได้น่ะค่ะ(คำถามเหมือนต้นกระทู้ค่ะ แต่เปลี่ยนที่เล่นน่ะค่ะ)
จะต้องเขียนCode อย่างไรคะ
ขอบคุณค่ะ
5 @R17963
    Dim MPlayer As WindowsMediaPlayer
    Set MPlayer = Player1.Object

    With MPlayer
        .URL = [Forms]![F1]![Text1]
        .settings.setMode "Loop", True
    End With


ประมาณนี้ครับ
6 @R17964
เพิ่มเติมให้อีกนิดครับ ไหนๆก็หาคำสั่งมาแล้ว

- หากต้องการซ้อนปุ่มคอนโทรลของตัว Media Player ให้เพิ่มบรรทัด uiMode ดังนี้ครับ

    Dim MPlayer As WindowsMediaPlayer
    Set MPlayer = Player1.Object

    With MPlayer
        .URL = [Forms]![F1]![Text1]
        .settings.setMode "Loop", True
        .uiMode = "none"
    End With

- หากต้องการแสดงแบบเต็มจอ ก็ใส่โค๊ดแบบนี้ครับ

    Dim MPlayer As WindowsMediaPlayer
    Set MPlayer = Player1.Object

    With MPlayer
        .URL = [Forms]![F1]![Text1]
        .settings.setMode "Loop", True
        Do
            DoEvents
        Loop Until .playState = wmppsPlaying
        .fullScreen = True
    End With

7 @R17966
ขอบคุณมากค่ะ
หนูทดลองใช้แล้ว เยี่ยมมาก ตรงตามต้องการเลยค่ะ
ความรู้นี้ได้แบ่งปันสำหรับเพื่อนๆที่อ่านกระทู้นี้นำไปใช้ประโยชน์ได้ค่ะ
ขอบคุณอาจารย์ และ Thai Access มากค่ะ
นี่คือแสงสว่างที่ปลายอุโมงค์
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3005s