Как получить доступ к закладкам Samsung Voice Recorder m4a после преобразования в Windows MPEG4? - PullRequest
0 голосов
/ 02 января 2019

Я записал несколько файлов с помощью 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

1 Ответ

0 голосов
/ 07 января 2019

Вы можете добавить закладки к видео или аудио, используя VBA.

Например, если вы выбрали аудио или видео:

With ActiveWindow.Selection.ShapeRange(1)
   With .MediaFormat.MediaBookmarks
      ' Add a bookmark at the 5 second mark
      .Add 5000, "My bookmark name"
   End With ' MediaBookmarks
End With  ' Selected Shape
...