C# 中如何使用API函数来获取音频文件的时间长度?
我想取常用的音频文件的时间,使用API函数来做.我自己写的代码如下:privateintGetFileLen(stringfilename){stringlenth=""...
我想取常用的音频文件的时间,使用API函数来做.我自己写的代码如下:
private int GetFileLen(string filename)
{
string lenth="";
int ValBack;
mciSendString("open " +filename + " alias song", "", 0, 0);
ValBack = mciSendString("set"+"song "+"time format milliseconds", "", 0, 0);
ValBack = mciSendString("status"+"song length", lenth,lenth.Length, 0);
MessageBox.Show(lenth);
lenth = lenth.Trim();
MessageBox.Show(lenth);
if (lenth == "")
{
return 0;
}
else
{
return (int)(Convert.ToDouble(lenth) / 1000f);
}
}
用messagebox返回的lenth值为"",也就是说用来取时间的字符串没有取到时间,请问该怎么修改? 展开
private int GetFileLen(string filename)
{
string lenth="";
int ValBack;
mciSendString("open " +filename + " alias song", "", 0, 0);
ValBack = mciSendString("set"+"song "+"time format milliseconds", "", 0, 0);
ValBack = mciSendString("status"+"song length", lenth,lenth.Length, 0);
MessageBox.Show(lenth);
lenth = lenth.Trim();
MessageBox.Show(lenth);
if (lenth == "")
{
return 0;
}
else
{
return (int)(Convert.ToDouble(lenth) / 1000f);
}
}
用messagebox返回的lenth值为"",也就是说用来取时间的字符串没有取到时间,请问该怎么修改? 展开
2个回答
展开全部
你这个lenth变量不可能取得到值啊。
ValBack = mciSendString("status"+"song length", lenth,lenth.Length, 0);
这一句你把lenth一个为""的值当作参数传给mciSendString,这是什么意思呢?
整个方法没有给lenth赋值的量,你再去取得它,它依然还是"",当然取不到了。
这个API函数不太常用,我帮你找了个详细的例子,你可以临摹一下。好好研究一下吧。
http://www.cnblogs.com/302soft/articles/627869.html
ValBack = mciSendString("status"+"song length", lenth,lenth.Length, 0);
这一句你把lenth一个为""的值当作参数传给mciSendString,这是什么意思呢?
整个方法没有给lenth赋值的量,你再去取得它,它依然还是"",当然取不到了。
这个API函数不太常用,我帮你找了个详细的例子,你可以临摹一下。好好研究一下吧。
http://www.cnblogs.com/302soft/articles/627869.html
展开全部
"获取媒体的长度 00:00
Public Function GetMusicLengthString(FileName As String) As String
Dim RefStr As String * 80
mciSendString ""status "" & CreateObject(""Scripting.FileSystemObject"").GetFile(FileName).shortpath & "" length"", RefStr, 80, 0
GetMusicLengthString = CStr(Format(Int(Val(RefStr) \ 1000 \ 60), ""00"") & "":"" & Format(Val(RefStr) \ 1000 Mod 60, ""00."") & Val(RefStr) \ 100 Mod 10)
End Function"
Public Function GetMusicLengthString(FileName As String) As String
Dim RefStr As String * 80
mciSendString ""status "" & CreateObject(""Scripting.FileSystemObject"").GetFile(FileName).shortpath & "" length"", RefStr, 80, 0
GetMusicLengthString = CStr(Format(Int(Val(RefStr) \ 1000 \ 60), ""00"") & "":"" & Format(Val(RefStr) \ 1000 Mod 60, ""00."") & Val(RefStr) \ 100 Mod 10)
End Function"
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询