OfficeTips Home || VBA Section || General Section || Download Section || Privacy Policy Bookmark and Share

Control the media player

 

The media player in PowerPoint can be displayed during the slide show or during the authoring experience when you click on a media object based on the settings you chose. You can also control them programmatically via the object model in either view.

The example below illustrates how this can be done. One thing to note is that the slide with the media shape must be the active slide for the code to work. If the slide is not active you are bound to run into a variety of errors. You can test out the code by inserting a media object on the slide and then running PlayMediaInDocument or PlayMediaInSlideShow.

The media player object has several option to control the player including support to jump to previous/next bookmarks.

Supported versions: PowerPoint 2013 or later

 

 

' --------------------------------------------------------------------------------
' Copyright ©1999-2015, Shyam Pillai, All Rights Reserved.
' --------------------------------------------------------------------------------
' You are free to use this code within your own applications, add-ins,
' documents etc but you are expressly forbidden from selling or 
' otherwise distributing this source code without prior consent.
' This includes both posting free demo projects made from this
' code as well as reproducing the code in text or html format.
' --------------------------------------------------------------------------------
Option Explicit
Private shapeId As Integer
Private mediaPlayer As Player

Function MediaPlayerRefInDocumentWindow(Index As Long) As Boolean
 
    shapeId = GetMediaShapeId(Index)
    
    If shapeId > 0 Then
        ActiveWindow.View.GotoSlide Index
        ActiveWindow.ViewType = ppViewNormal
        ActiveWindow.Panes(2).Activate
        
        Set mediaPlayer = ActiveWindow.View.Player(shapeId)
        MediaPlayerRefInDocumentWindow = True
    Else
        MsgBox "No media shape found on the slide."
    End If
End Function

Function MediaPlayerRefInSlideShowWindow(Index As Long) As Boolean
    shapeId = GetMediaShapeId(Index)
    If shapeId > 0 Then
        Set mediaPlayer = SlideShowWindows(1).View.Player(shapeId)
        MediaPlayerRefInSlideShowWindow = True
    Else
        MsgBox "No media shape found on the slide."
    End If
 
End Function

Function GetMediaShapeId(Index As Long) As Long
    Dim shp As Shape
    
    For Each shp In ActivePresentation.Slides(Index).Shapes
        If shp.Type = msoMedia Then
            GetMediaShapeId = shp.Id
            Exit Function
        End If
    Next shp
    
    GetMediaShapeId = -1
End Function

Sub PlayMediaInDocument()

If MediaPlayerRefInDocumentWindow(ActiveWindow.Selection.SlideRange(1).SlideIndex) Then
    If mediaPlayer.State = ppStopped Or mediaPlayer.State = ppPaused Then
        mediaPlayer.Play
    End If
End If

End Sub

Sub PlayMediaInSlideShow()

If MediaPlayerRefInSlideShowWindow(SlideShowWindows(1).View.CurrentShowPosition) Then
    If mediaPlayer.State = ppStopped Or mediaPlayer.State = ppPaused Then
        mediaPlayer.Play
    End If
End If

End Sub
 

		

 

 

Copyright 1999-2015 (c) Shyam Pillai. All rights reserved.