VB和c#取得mp3长度

简介:

<< VB.Net >>

 
  
  1. Imports System.IO
  2. Imports Microsoft.Win32
 
  
  1. ' API 宣告
  2. Private Declare Function mciSendStringA Lib "Winmm.dll" _
  3. (ByVal lpszCommand As String, ByVal lpszReturnString As String, _
  4. ByVal cchReturn As Integer, ByVal hwndCallback As IntPtr) As Integer

 
  
  1. Private Sub Button1_Click(ByVal s As Object, ByVal e As EventArgs) Handles Button1.Click
  2. MessageBox.Show(Cvt2HMS(GetMediaLen("C:\音樂欣賞\Candy Shop.mp3")))
  3. MessageBox.Show(Cvt2HMS(GetMediaLen("C:\音樂欣賞\國境之南.wmv")))
  4. MessageBox.Show(Cvt2HMS(GetMediaLen("C:\音樂欣賞\Time to say goodbye.wma")))
  5. MessageBox.Show(Cvt2HMS(GetMediaLen("C:\音樂欣賞\寶貝.flv")))
  6. End Sub

 
  
  1. ' 取得多媒體檔案長度
  2. Private Function GetMediaLen(ByVal File As String) As Long
  3. Dim key As String = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI Extensions"
  4. Dim RegKey As RegistryKey = Registry.LocalMachine.OpenSubKey(key)
  5. Dim FileExt As String = (Path.GetExtension(File).Replace(".", ""))
  6. Dim tp As String = RegKey.GetValue(FileExt, "MPEGVideo")
  7. RegKey.Close()
  8. Dim tm As New String(Chr(0), 128)
  9. Dim cmd As String
  10. cmd = "open """ & File & """ type " & tp & " alias Media"
  11. If mciSendStringA(cmd, vbNullString, 0, 0) = 0 Then
  12. If mciSendStringA("status Media length", tm, tm.Length, 0) = 0 Then
  13. If tm <> "" Then GetMediaLen = Convert.ToInt32(tm) \ 1000
  14. End If
  15. mciSendStringA("close Media", vbNullString, 0, 0)
  16. End If
  17. End Function

 
  
  1. ' 轉換成時分秒
  2. Private Function Cvt2HMS(ByVal sec As Long) As String
  3. Dim h, m, s As Integer
  4. Cvt2HMS = ""
  5. h = sec \ 3600
  6. If h > 0 Then Cvt2HMS &= h.ToString & "時"
  7. m = (sec Mod 3600) \ 60
  8. If m > 0 Then Cvt2HMS &= m.ToString & "分"
  9. s = (sec Mod 3600) Mod 60
  10. If s > 0 Then Cvt2HMS &= s.ToString & "秒"
  11. End Function

<< C# >>

 
  
  1. using System.IO;
  2. using Microsoft.Win32;
 
  
  1. // API 宣告
  2. [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
  3. public static extern int mciSendString(
  4. string lpstrCommand, string lpstrReturnString,
  5. int uReturnLength, int hwndCallback);

 
  
  1. private void button1_Click(object s, EventArgs e)
  2. {
  3. MessageBox.Show(GetMediaLen(@"D:\音樂欣賞\Dirty.mp3").ToString() + " Sec");
  4. }

 
  
  1. // 取得多媒體檔案長度
  2. private long GetMediaLen(string File)
  3. {
  4. long RetVal = 0;
  5. string key = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\MCI Extensions";
  6. RegistryKey RegKey = Registry.LocalMachine.OpenSubKey(key);
  7. string FileExt = Path.GetExtension(File).Replace(".", "");
  8. string tp = RegKey.GetValue(FileExt, "MPEGVideo").ToString();
  9. RegKey.Close();
  10. string tm = new string((char)0, 128);
  11. if (mciSendString("open \"" + File + "\" type " + tp + " alias Media", null, 0, 0) == 0)
  12. {
  13. if (mciSendString("status Media length", tm, tm.Length, 0) == 0)
  14. {
  15. tm = tm.Trim((char)0);
  16. if (!string.IsNullOrEmpty(tm)) RetVal = Convert.ToInt64(tm) / 1000;
  17. }
  18. mciSendString("close Media", null, 0, 0);
  19. }
  20. return RetVal;
  21. } 本文转自94cool博客园博客,原文链接http://www.cnblogs.com/94cool/archive/2009/08/31/1557020.html,如需转载请自行联系原作者
相关文章
|
3月前
|
存储 编解码
如何将BDMV文件转换为MKV或MP4?
许多拥有蓝光光驱的用户可能在电脑上存储了一些BDMV文件。虽然这些文件提供了高质量的视频和音频,但由于其文件格式的限制,它们可能无法在某些设备上播放。因此,将BDMV文件转换为常见的MKV或MP4文件就变得非常重要。本文将介绍一种简单而有效的方法来完成这个转换过程。
210 2
|
9月前
Word转PDF 并转成base64(亲测可用)
Word转PDF 并转成base64(亲测可用)
285 0
|
8月前
|
Linux 计算机视觉 iOS开发
使用ffmpeg将MP4转换为WebM格式
使用ffmpeg将MP4转换为WebM格式
808 2
|
9月前
|
存储 编解码 算法
MP4文件格式的解析,以及MP4文件的分割算法
MP4文件格式的解析,以及MP4文件的分割算法
123 0
|
12月前
|
存储 编解码 算法
MP4格式解析
MP4视频文件封装格式是基于QuickTime容器格式定义的,因此参考QuickTime的格式定义对理解MP4文件格式很有帮助。MP4文件格式是一个十分开放的容器,几乎可以用来描述所有的媒体结构,MP4文件中的媒体描述与媒体数据是分开的,并且媒体数据的组织也很自由,不一定要按照时间顺序排列,甚至媒体数据可以直接引用其他文件。同时,MP4也支持流媒体。MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V, 3GP, F4V等。
212 0
|
Java
Java实现将视频转换为mp4格式
Java实现将视频转换为mp4格式
1109 0
|
算法 Android开发
【密码学】Base64 编码 ( Base64 简介 | Base64 编码原理 | 最后编码组字节不足时补位 ‘=‘ 符号 | Base64 编码实现参考 )(二)
【密码学】Base64 编码 ( Base64 简介 | Base64 编码原理 | 最后编码组字节不足时补位 ‘=‘ 符号 | Base64 编码实现参考 )(二)
309 0
|
算法 区块链 索引
【密码学】Base64 编码 ( Base64 简介 | Base64 编码原理 | 最后编码组字节不足时补位 ‘=‘ 符号 | Base64 编码实现参考 )(一)
【密码学】Base64 编码 ( Base64 简介 | Base64 编码原理 | 最后编码组字节不足时补位 ‘=‘ 符号 | Base64 编码实现参考 )(一)
334 0
【密码学】Base64 编码 ( Base64 简介 | Base64 编码原理 | 最后编码组字节不足时补位 ‘=‘ 符号 | Base64 编码实现参考 )(一)
|
存储 编解码 容器
你真的懂 MP4 格式吗?
MP4 文件格式重点全解析!
你真的懂 MP4 格式吗?

热门文章

最新文章