C#查找视频和音频文件长度

时间:2016-01-14 17:18:18

标签: c# audio unity3d

我目前正致力于一个简单的独奏项目,一个接一个地从我的机器上找到并连续播放歌曲。我已经下载了各种格式的音乐。

MP4,MP3,MPEG,AVI和WAV

一切都可以通过递归搜索指定目录中的音乐来播放文件和创建播放列表。但我似乎无法弄清楚如何找到这些文件的长度,以确定程序在继续播放另一首歌之前应该等待多长时间。

我在Windows 8 HP笔记本电脑上使用Unity3d构建此程序。任何意见都表示赞赏。

3 个答案:

答案 0 :(得分:0)

如果您使用的是Audioclip,您可以使用: http://docs.unity3d.com/ScriptReference/AudioClip-length.html http://docs.unity3d.com/ScriptReference/AudioSource-isPlaying.html

正如@Wai Ha Lee建议的那样,我应该在链接中添加一些解释,所以就是这样。 您可以使用AudioClip.Length和AudioSource.IsPlaying(上面链接的文档)来获取必要的信息。

答案 1 :(得分:0)

正如专家所说,对于Unity中的音频文件,请使用AudioClip.Length。然后对于视频数据,您应该使用MovieTexture.Duration类。

使用C#中的媒体文件有时(即使在2015年)仍然是一个痛点,所以我的建议是尽可能利用像TagLib这样的库。如果像TagLib这样的库是过度的,那么请查看它们的来源并获取所需的位。

答案 2 :(得分:-2)

我认为您可以使用fileInfo命名空间中的System.io类来获取它的长度。例如:

FileInfo fileInfo = new FileInfo(dlg.FileName);

这将为您提供fileInfo.Length的字节长度。然后你可以转换它,使它显示为千字节或兆字节。例如:

fileInfo.Length / 1024

...会给你一个千字节的长度。