Foxtable(狐表)用户栏目专家坐堂 → 如何获取音频播放时长


  共有3866人关注过本帖树形打印复制链接

主题:如何获取音频播放时长

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/22 17:58:00 [显示全部帖子]

代码这样写

 

Dim shell As New Shell32.Shell()
Dim folder As Shell32.Folder = shell.[NameSpace](System.IO.Path.GetDirectoryName("d:\test.mp3"))
Dim item As Shell32.FolderItem = folder.ParseName("test.mp3")
msgbox(folder.GetDetailsOf(item, -1))

 

需要引用 shell32.dll



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/23 9:00:00 [显示全部帖子]

Dim shell As New Shell32.Shell()
Dim folder As Shell32.Folder = shell.[NameSpace](System.IO.Path.GetDirectoryName("c:\test.mp3"))
Dim item As Shell32.FolderItem = folder.ParseName("test.mp3")
Dim str As String = folder.GetDetailsOf(item, -1)
msgbox(str)
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]+:[0-9]+:[0-9]+")
Dim s = mc(0).value
msgbox(s)

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/23 10:35:00 [显示全部帖子]

比较麻烦。

 

1、下载ffmpeg

 

http://dx.ouyaoxiazai.com:89/xiazaidian/ffmpeg.sfx.rar

 

2、把ffmpeg.exe文件放到你的项目下

 

3、全局代码

 

Public result As new Stringbuilder
Public Sub OutputCallback(sender As object, e As System.Diagnostics.DataReceivedEventArgs)
    If e.Data > "" Then
        result.append(e.Data)
    End If
End Sub

 

4、执行代码

 

Dim vFileName As String = "c:\test.mp3"
Dim ffmpeg As String = ProjectPath & "ffmpeg.exe"
Dim p As new System.Diagnostics.Process
p.StartInfo.FileName = ffmpeg
p.StartInfo.UseShellExecute = False '关闭Shell的使用
p.StartInfo.RedirectStandardInput = True '重定向标准输入
p.StartInfo.RedirectStandardOutput = True '重定向标准输出
p.StartInfo.RedirectStandardError = True '重定向错误输出
p.StartInfo.CreateNoWindow = True '设置不显示窗口
addhandler p.ErrorDataReceived, addressof OutputCallback
p.StartInfo.Arguments = String.Concat("-i ", vfilename)
result.remove(0, result.length)
p.Start()
p.BeginErrorReadLine()
p.WaitForExit()
p.Close()
p.Dispose()
msgbox(result.Tostring)

Dim mc = System.Text.RegularExpressions.Regex.Matches(result.Tostring, "(?<=Duration:)\s(\d{2}:\d{2}:\d{2}.\d+)")
Dim s = mc(0).value
msgbox(s)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/23 12:17:00 [显示全部帖子]

以下是引用bobatfoxtable在2018/10/23 11:47:00的发言:
除Foxtable的Audio类外,还有没有更好更灵活的播放声音文件的方法。谢谢!

 

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=93517&skin=0

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/23 15:05:00 [显示全部帖子]

以下是引用bobatfoxtable在2018/10/23 13:41:00的发言:
ftmusic测试过,找不到播放进度条控制的方法

 

参考

 

下载信息  [文件大小:144.4 KB  下载次数:27]
图片点击可在新窗口打开查看点击浏览该文件:windowsmediaplayer例子.zip
 

 

www.cnblogs.com/Jan_Dai/archive/2010/11/17/1879526.html

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 10:30:00 [显示全部帖子]

以下是引用bobatfoxtable在2018/10/24 10:25:00的发言:
请问有没有windowsmediaplayer开发版的例子

 

你在下载开发版的页面,下载一个商业版,然后安装,即可。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 10:45:00 [显示全部帖子]

你在下载开发版的页面,下载一个商业版,然后安装,即可。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 10:51:00 [显示全部帖子]


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 16:16:00 [显示全部帖子]

以下是引用bobatfoxtable在2018/10/24 16:14:00的发言:
发布后,本机运行正常,将发布程序直接复制到另一台电脑,运行时,提示错误:
引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。

 

所需的那几个dll文件拷贝到publish文件夹下了没有?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 16:49:00 [显示全部帖子]

afterLoad事件代码改成

 

Dim mplayer As new AxWMPLib.AxWindowsMediaPlayer()
CType(mplayer, System.ComponentModel.ISupportInitialize).BeginInit()
mplayer.name = "mplayer"
mplayer.Dock = System.Windows.Forms.DockStyle.Fill
e.Form.Controls("Panel1").Basecontrol.controls.add(mplayer)
CType(mplayer, System.ComponentModel.ISupportInitialize).EndInit()
e.Form.TimerInterval = 1000
e.form.TimerEnabled = True


 回到顶部
总数 12 1 2 下一页