【问题标题】:Play MP3 files using loops使用循环播放 MP3 文件
【发布时间】:2020-09-02 08:01:07
【问题描述】:

我正在编写一个代码,该代码将根据 A 列中这些 mp3 文件的文件名列表播放特定目录中的 MP3 文件。该代码适用于大约五个或六个文件,然后 excel 挂起一段时间然后从另一个意想不到的点恢复。如何修复代码以使其播放 A 列中的所有 mp3 文件?

Public wmp As Object

Sub Test()
    Dim r As Long
    Set wmp = CreateObject("new:6BF52A52-394A-11D3-B153-00C04F79FAA6")
    For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        With wmp
            .URL = ThisWorkbook.Path & "\Media\" & Cells(r, 1).Value & ".mp3"
            .Controls.Play
        End With
        DoEvents
        Application.Wait Now + TimeValue("00:00:02")
    Next r
End Sub

【问题讨论】:

  • 我已经删除了我的答案。稍后将通过完整示例发布详细答案

标签: excel vba mp3


【解决方案1】:

您可以使用循环来构建您的播放列表,然后播放它

Public wmp As Object

Sub Test()
    Dim r As Long
    Dim itm
    Set wmp = CreateObject("new:6BF52A52-394A-11D3-B153-00C04F79FAA6")
    For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        With wmp
            Set itm = .newMedia(ThisWorkbook.Path & "\Media\" & Cells(r, 1).Value & ".mp3")
            .currentPlaylist.appendItem itm
        End With
    Next r
    wmp.Controls.Play
End Sub

【讨论】:

  • 非常感谢您的解决方案。我可以让每个文件之间等待吗?
  • 没问题。看不出为什么不,但为什么需要它等待?
  • 我需要等待,因为代码旨在让学生在收听每个 mp3 文件时等待一段时间(他需要一些时间休息)
  • 哦,所以您希望它在播放下一个文件之前等待,而不是在将下一个文件添加到播放列表之前等待,对吗?
  • 不确定是否可以在这样的曲目之间暂停。对于曲目之间的固定长度暂停,您可以录制 X 秒的静音,然后创建播放列表,以便在每个文件之后播放此“静音”曲目。或者,您可以让用户控制何时播放下一首曲目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2013-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多