Я записал несколько файлов с помощью Samsung Voice Recorder и вставил несколько закладок на файл. На моем телефоне это файлы m4a. При копировании на мой компьютер они отображаются в виде файлов mpeg4.
Мне нужно добавить их в Powerpoint (один файл на слайд) и использовать закладки для запуска анимации (в идеале с vba), однако закладки не отображаются.
Может кто-нибудь помочь или указать мне правильное направление? Заранее спасибо.
Вот ссылка на один из файлов. Этот файл имеет 6 закладок со следующим временем: 00:00, 00:03, 00:04, 00:05, 00:12, 00:24.
https://1drv.ms/u/s!AkCe6_YwGEfWgupe2wsCcerSf4nFUw
Я добавил окончательный код. Аудио файлы следуют сценарию, который имеет небольшие вариации для конкретных клиентов, поэтому клипы все очень похожи. Я добавил аудиофайл к каждому слайду, затем скопировал закладки из исходного аудио и применил их к новому файлу. Спасибо !!
'Purpose: Copy media bookmarks and animation settings from a media shape on the same slide to the selected media shape.
'Sources:
' https://stackoverflow.com/questions/54011849/how-can-i-access-samsung-voice-recorder-m4a-bookmarks-after-conversion-to-window
' http://skp.mvps.org/2010/ppt002.htm
Private Sub CopyMediaSettingsToNewItem()
Dim sld As Slide
Dim newShp As Shape
Dim shp As Shape
Dim mf As MediaFormat
Dim z As Long
Dim y As Long
Dim oMBK As MediaBookmark
Dim myMBK As String
Dim myPos As Long
Set sld = ActivePresentation.Slides(ActiveWindow.Selection.SlideRange.SlideIndex)
Set shp = sld.Shapes("Slide 13")
Set mf = shp.MediaFormat
Set newShp = sld.Shapes("Slides(13)")
With newShp
.Top = shp.Top
.Left = shp.Left
.Width = shp.Width
.Height = shp.Height
End With
'Apply the original shape's media format settings to the new shape. The 'noted settings are read-only.
With newShp.MediaFormat
'.AudioCompressionType = shp.MediaFormat.AudioCompressionType
'.AudioSamplingRate = shp.MediaFormat.AudioSamplingRate
'.EndPoint = shp.MediaFormat.EndPoint
.FadeInDuration = shp.MediaFormat.FadeInDuration
.FadeOutDuration = shp.MediaFormat.FadeOutDuration
'.IsEmbedded = shp.MediaFormat.IsEmbedded
'.IsLinked = shp.MediaFormat.IsLinked
'.Length = shp.MediaFormat.Length
.Muted = shp.MediaFormat.Muted
'.Parent = shp.MediaFormat.Parent
'.ResamplingStatus = shp.MediaFormat.ResamplingStatus
'.SampleHeight = shp.MediaFormat.SampleHeight
'.SampleWidth = shp.MediaFormat.SampleWidth
.StartPoint = shp.MediaFormat.StartPoint
.Volume = shp.MediaFormat.Volume
End With
For y = 1 To shp.MediaFormat.MediaBookmarks.Count
Set oMBK = shp.MediaFormat.MediaBookmarks(y)
myMBK = oMBK.Name
Debug.Print "Length: " & shp.MediaFormat.Length
Debug.Print "EndPoint: " & shp.MediaFormat.EndPoint
Debug.Print "Position: " & oMBK.Position
Debug.Print "Name: " & oMBK.Name
'If the last bookmark position of the original shape is past the length of the new media file...
If oMBK.Position > newShp.MediaFormat.Length Then
myPos = newShp.MediaFormat.Length
Else: myPos = shp.MediaFormat.MediaBookmarks(y).Position
End If
With ActiveWindow.Selection.ShapeRange(1)
With .MediaFormat.MediaBookmarks
.Add myPos, myMBK
End With
End With
Next
If shp.MediaType = ppMediaTypeMovie Then
'.VideoCompressionType = shp.MediaFormat.VideoCompressionType
'.VideoFrameRate = shp.MediaFormat.VideoFrameRate
End If
shp.PickupAnimation
newShp.ApplyAnimation
'Dim eff As Effect
'Set eff = sld.TimeLine.MainSequence.AddEffect(newShp, msoAnimEffectMediaPlay, trigger:=msoAnimTriggerAfterPrevious)
'With newShp.AnimationSettings.PlaySettings
'.LoopUntilStopped = msoCTrue
'.PauseAnimation = msoFalse
'.PlayOnEntry = msoCTrue
'.RewindMovie = msoCTrue
'.StopAfterSlides = 999
'.HideWhileNotPlaying = msoTrue
'End With
'Release from memory
Set sld = Nothing
Set newShp = Nothing
Set shp = Nothing
z = 0
y = 0
Set oMBK = Nothing
Set mf = Nothing
myMBK = vbNullString
myPos = 0
End Sub