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,如需转载请自行联系原作者
相关文章
|
10天前
|
编解码 安全 iOS开发
如何将ISO转换为MP4格式
将 ISO 文件转换为 MP4 格式,可以更方便地保存和在常用设备上播放。这里有 8 款适用于 Windows 和 Mac 的最佳软件程序,可用于将 ISO 文件转换为数字格式,以便在任何设备上欣赏您的视频。
|
4月前
|
Linux 计算机视觉 iOS开发
使用ffmpeg将MP4转换为WebM格式
使用ffmpeg将MP4转换为WebM格式
435 2
|
4月前
|
存储 编解码 iOS开发
视频文件格式:MOV与MP4格式的区别是什么?
视频文件有多种格式,很多人在下载时不知道该选择哪种文件格式。不同格式有不同特点,各自有优缺点。本文将详细介绍常见的MOV和MP4的特点与区别,以供读者了解及选择。
448 2
视频文件格式:MOV与MP4格式的区别是什么?
|
5月前
|
存储 编解码 算法
MP4文件格式的解析,以及MP4文件的分割算法
MP4文件格式的解析,以及MP4文件的分割算法
96 0
|
8月前
|
存储 编解码 算法
MP4格式解析
MP4视频文件封装格式是基于QuickTime容器格式定义的,因此参考QuickTime的格式定义对理解MP4文件格式很有帮助。MP4文件格式是一个十分开放的容器,几乎可以用来描述所有的媒体结构,MP4文件中的媒体描述与媒体数据是分开的,并且媒体数据的组织也很自由,不一定要按照时间顺序排列,甚至媒体数据可以直接引用其他文件。同时,MP4也支持流媒体。MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V, 3GP, F4V等。
143 0
|
10月前
|
Java
Java实现将视频转换为mp4格式
Java实现将视频转换为mp4格式
821 0
|
10月前
|
编解码 前端开发 安全
详细讲解ffmpeg命令的使用(视频合并&avi转MP4&补空白音频【收藏下来一定用的到】)
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。 本文从实战的角度出发详细讲解ffmpeg命令的使用。 干货满满,建议收藏,需要用到时常看看。 小伙伴们如有问题及需要,欢迎踊跃留言哦~ ~ ~。
1653 0
详细讲解ffmpeg命令的使用(视频合并&avi转MP4&补空白音频【收藏下来一定用的到】)
|
API Python
Python 技术篇-用wave库实现音频mp3格式转wav格式,高保真!
Python 技术篇-用wave库实现音频mp3格式转wav格式,高保真!
375 0
Python 技术篇-用wave库实现音频mp3格式转wav格式,高保真!
|
存储 编解码 容器
你真的懂 MP4 格式吗?
MP4 文件格式重点全解析!
你真的懂 MP4 格式吗?