Lấy thời lượng 1 bản nhạc

Liên hệ QC

le tin

Học mãi
Tham gia
22/10/07
Bài viết
722
Được thích
560
Chào các bạn
Trong bản nhạc có cột thời lượng . Nhờ các bạn giúp cho đoạn code trích ra cột này.
Cảm ơn
 
Chào các bạn
Trong bản nhạc có cột thời lượng . Nhờ các bạn giúp cho đoạn code trích ra cột này.
Cảm ơn
Đầu tiên, vào cửa sổ VBE, trong menu Tools\References, bạn check mục "Microsoft Shell Controls And Automation"
Xong, copy đoạn code dưới đây vào module:
PHP:
Function GetMp3Duration(ByVal mp3File As String)
  On Error Resume Next
  Dim fldName As String, fleName As String
  With CreateObject("Scripting.FileSystemObject")
    fldName = .GetFile(mp3File).ParentFolder
    fleName = .GetFile(mp3File).Name
  End With
  With New Shell
    With .Namespace(fldName)
      GetMp3Duration = .GetDetailsOf(.ParseName(fleName), 21)
    End With
  End With
End Function
Bây giờ để tìm thời lượng của file D:\My Music\Bien nho-Le Thu.mp3, ta gõ vào bảng tính công thức =GetMp3Duration("D:\My Music\Bien nho-Le Thu.mp3")
 
Upvote 0
Cái thằng Microsoft Shell Controls And Automation cũng khó nhai thật
Sau 1g nghiên cứu, tôi sửa lại code để khỏi cần check References
Code như sau:
Mã:
Function GetMp3Duration(ByVal mp3File As String)
  On Error Resume Next
  Dim fldName As String, fleName As String
  With CreateObject("Scripting.FileSystemObject")
    fldName = .GetFile(mp3File).ParentFolder.Path
    fleName = .GetFile(mp3File).Name
  End With
  With CreateObject("Shell.Application")
    With .Namespace("" & fldName & "")
      GetMp3Duration = .GetDetailsOf(.ParseName("" & fleName & ""), [COLOR=#ff0000][B]21[/B][/COLOR])
    End With
  End With
End Function
Với code này thì mang sang máy nào cũng xài được (khỏi cần phải dặn người dùng check gì đó trong References)
---------------------
Nói thêm: Để ý số 21 màu đỏ trong code, có thể thay số này từ 1 đến 34, thí nghiệm và tự mình rút ra kết luận
 

File đính kèm

  • GetMp3Duration.xls
    23.5 KB · Đọc: 8
Upvote 0
Web KT
Back
Top Bottom