vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Multimedia & Sound · Video   |   VB-Versionen: VB2005, VB200823.11.09
YouTube Videos in eigener Anwendung

Erstellen eines eigenen UserControl, mit dem sich Flash-Videos abspielen lassen.

Autor:   Roland WutzkeBewertung:     [ Jetzt bewerten ]Views:  37.208 
www.vb-power.netSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Heute möchten wir Ihnen ein UserControl vorstellen, mit dem Sie Flash-Videos abspielen können. Das UserControl hosted dabei den FlashPlayer über LateBinding, so dass keine Versionsabhängigkeit zu einem bestimmten Player entsteht. Es ist also egal, ob auf dem PC die ältere Version 9 oder die aktuelle Version 10 des FlashPlayers installiert ist.

Hinweise zu YouTube Videos
Die URL für ein YouTube Video setzt sich aus der Basisadresse http://www.youtube.com/v/ und der Video-ID zusammen, z.B. „egJR3K6UIJY“. Daraus ergibt sich für das Video „Phil Collins Farewell Tour - Drums and Take Me Home“ folgende Video-URL:
http://www.youtube.com/v/egJR3K6UIJY

Sie können YouTube Videos nur dann in externen Playern abspielen, wenn diese zur Einbettung freigegeben sind. Dies wird Ihnen auf der YouTube Webseite neben dem Video angezeigt.

Nachfolgend nun das FlashPlayer UserControl
Fügen Sie Ihrem Projekt eine neue Klasse hinzu, und kopieren den Code in das Klassenmodul. Erstellen Sie einmal das Projekt, um so das UserControl zu erzeugen. VB.Net stellt das neue UserControl automatisch in die ToolBox oben ein. Sie können jetzt das so neu erzeugte UserControl auf Ihre Form ziehen und damit wie gewohnt arbeiten.

Imports System.Text
Imports System.ComponentModel
Imports System.Runtime.InteropServices
 
''' <summary>
''' FlashPlayer UserControl
''' </summary>
''' <remarks>
''' Dieses UserControl hosted über LateBinding einen
''' versionsunabhängigen FlashPlayer.
''' 
''' November 2009 - VB-Power.net
''' http://www.vb-power.net
''' </remarks>
Public Class FlashPlayer
  Inherits UserControl
 
  Private m_FlashHost As FlashHost
  Private m_AutoPlay As Boolean = True
  Private m_ColorFrom As Color = Color.Gray
  Private m_ColorTo As Color = Color.Gray
  Private m_ShowBorder As Boolean = False
  Private m_IsPlayerInit As Boolean = False
  ''' <summary>
  ''' Controller-Host für den FlashPlayer zur Darstellung
  ''' in einem UserControl.
  ''' </summary>
  Private Class FlashHost
    Inherits AxHost
 
    Public Sub New(ByVal sCLSID As String)
      MyBase.New(sCLSID)
    End Sub
 
    Public ReadOnly Property Player() As Object
      Get
        Return Me.GetOcx
      End Get
    End Property
  End Class
  ''' <summary>
  ''' Initialisiert das UserControl
  ''' </summary>
  Public Sub New()
    Try
      ' Versionsunabhängiges LateBinding des FlashPlayers
      Dim tFlashPlayer As Type = Type.GetTypeFromProgID("ShockwaveFlash.ShockwaveFlash")
      If tFlashPlayer IsNot Nothing Then
        m_FlashHost = New FlashHost(tFlashPlayer.GUID.ToString)
        DirectCast(m_FlashHost, ISupportInitialize).BeginInit()
        SuspendLayout()
        m_FlashHost.Visible = True
        m_FlashHost.Dock = DockStyle.Fill
        Controls.Add(m_FlashHost)
        DirectCast(m_FlashHost, ISupportInitialize).EndInit()
        ResumeLayout(False)
        PerformLayout()
        m_IsPlayerInit = True
      Else
        MessageBox.Show("Der FlashPlayer konnte nicht initialisiert werden.", _
           "Überprüfung FlashPlayer", MessageBoxButtons.OK, MessageBoxIcon.Error)
      End If
    Catch ex As Exception
      MessageBox.Show(ex.Message, "Initialisierung FlashPlayer", _
         MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
  End Sub
  ''' <summary>
  ''' Legt fest, ob das Video sofort abgespielt werden soll.
  ''' </summary>
  <DefaultValue(GetType(System.Boolean), "True")> _
  Public Property AutoPlay() As Boolean
    Get
      Return m_AutoPlay
    End Get
    Set(ByVal value As Boolean)
      m_AutoPlay = value
    End Set
  End Property
  ''' <summary>
  ''' Legt die erste Verlaufsfarbe für Border und Navigator fest.
  ''' </summary>
  <DefaultValue(GetType(System.Drawing.Color), "Gray")> _
  Public Property ColorFrom() As Color
    Get
      Return m_ColorFrom
    End Get
    Set(ByVal value As Color)
      m_ColorFrom = value
    End Set
  End Property
  ''' <summary>
  ''' Legt die zweite Verlaufsfarbe für Border und Navigator fest.
  ''' </summary>
  <DefaultValue(GetType(System.Drawing.Color), "Gray")> _
  Public Property ColorTo() As Color
    Get
      Return m_ColorTo
    End Get
    Set(ByVal value As Color)
      m_ColorTo = value
    End Set
  End Property
  ''' <summary>
  ''' Zeigt an, ob ein FlashPlayer initialisiert werden konnte.
  ''' </summary>
  <Browsable(False)> _
  Public ReadOnly Property IsPlayerInit() As Boolean
    Get
      Return m_IsPlayerInit
    End Get
  End Property
  ''' <summary>
  ''' Legt fest, ob der Player einen Rahmen angezeigen soll.
  ''' </summary>
  <DefaultValue(GetType(System.Boolean), "False")> _
  Public Property ShowBorder() As Boolean
    Get
      Return m_ShowBorder
    End Get
    Set(ByVal value As Boolean)
      m_ShowBorder = value
    End Set
  End Property
  ''' <summary>
  ''' Spielt das angegebene Video ab.
  ''' </summary>
  ''' <param name="URL">Die URL des Videos.</param>
  Public Sub PlayMovie(ByVal URL As String)
    If Not String.IsNullOrEmpty(URL) Then
      Dim sb As New StringBuilder
      sb.Append(URL)
      sb.AppendFormat("&autoplay={0}", IIf(m_AutoPlay, "1", "0"))
      sb.AppendFormat("&color1=0x{0}{1}{2}", String.Format("{0:X2}", m_ColorFrom.R), _
         String.Format("{0:X2}", m_ColorFrom.G), String.Format("{0:X2}", m_ColorFrom.B))
      sb.AppendFormat("&color2=0x{0}{1}{2}", String.Format("{0:X2}", m_ColorTo.R), _
         String.Format("{0:X2}", m_ColorTo.G), String.Format("{0:X2}", m_ColorTo.B))
      sb.AppendFormat("&border={0}", IIf(m_ShowBorder, "1", "0"))
 
      m_FlashHost.Player.Movie = sb.ToString
    End If
  End Sub
End Class

Aufrufbeispiel:

If Me.FlashPlayer1.IsPlayerInit Then
  ' Phil Collins Farewell Tour - Drums and "Take me Home"
  Me.FlashPlayer1.PlayMovie("http://www.youtube.com/v/egJR3K6UIJY")
End If

Dieser Tipp wurde bereits 37.208 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (1 Beitrag)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel