首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

使用 Shell32 讀取影音檔案屬性(一)

     編輯:關於C語言

由於需要即時讀取影音檔案(mp3、wma、wmv …)播放時間長度的功能,搜尋到的結果有:

  1. 硬編碼分析影音檔案,需分析各種媒體格式,成本最高;
  2. 使用 WMLib SDK,需熟悉 SDK 各介面,且不同版本 WM 介面有別,成本次之;
  3. 使用系統 Shell32 的 COM 介面,直接存取媒體檔案屬性,取其特定內容,成本最低。

顯然第 3 種方案見效最快,立即動手:

① 參考 Shell12 底層介面 c:\Windows\system32\shell32.dll,VS 自動轉換成 Interop.Shell32.dll(註:64 位系統與 32 位系統生成的 Interop.Shell32.dll 不同)

② 編碼讀取播放時間長度:

/// <summary>
/// 獲取媒體播放時間長度,格式 00:00:00。
/// </summary>
/// <param name="path">媒體路徑</param>
/// <returns>播放時間長度</returns>
public static string GetMediaDuration(this string path)
{
    try
    {
        Shell32.Shell shell = new Shell32.ShellClass();
        Shell32.Folder folder = shell.NameSpace(path.Substring(0, path.LastIndexOf("\\")));
        Shell32.FolderItem folderItem = folder.ParseName(path.Substring(path.LastIndexOf("\\") + 1));
        return folder.GetDetailsOf(folderItem, 21);
    }
    catch (Exception ex)
    {
        ex.Error();
        return null;
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved