【问题标题】:C# Find Video and Audio file length [duplicate]C#查找视频和音频文件长度[重复]
【发布时间】:2016-01-14 17:18:18
【问题描述】:

我目前正在做一个简单的独奏项目,以查找并连续播放我机器上的歌曲,一首又一首。我下载的音乐有多种格式。

MP4、MP3、MPEG、AVI 和 WAV

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

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

【问题讨论】:

  • 所以看起来 Microsoft.WindowsAPICodePack.Shell 是用于此代码的库。我已经下载了它的 dll,但我可以在哪里安装它以在我的项目中使用?
  • 建议重新打开这个问题,因为“重复”问题是关于一个非常具体的库 BASS,而这是关于 Unity3D,它有一组完全不同的库。

标签: c# audio unity3d


【解决方案1】:

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

在 C# 中处理媒体文件有时(即使在 2015 年)仍然是一个痛点,所以我的建议是尽可能使用像 TagLib 这样的库。如果 TagLib 之类的库太过分了,那么请查看它们的源代码并获取所需的部分。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,但我正在播放的文件是 Unity 项目的外部文件。由于它们有很多不同的格式,如 mp3、mp4 等。我正在使用 Media Player 播放歌曲,而不是将它们流式传输到 Unity。
    猜你喜欢
    • 2014-02-22
    • 2010-10-04
    • 2011-05-24
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多