如何在Windows Phone中获取wav文件的长度

时间:2011-10-25 03:28:22

标签: windows-phone-7

我想知道波形文件的长度。目前我正在使用以下代码

using (IsolatedStorageFile isofile = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (IsolatedStorageFileStream isostream = new IsolatedStorageFileStream(FilePath, System.IO.FileMode.Open,System.IO.FileAccess.Read, isofile))
    {
        me = new MediaElement();
        me.SetSource(isostream);
    }
 }
embedVoiceLength = me.NaturalDuration.TimeSpan.TotalSeconds;

但是,它不会从naturalduration.timespan.totalseconds返回长度,因为me未打开;

2 个答案:

答案 0 :(得分:0)

如果在文件打开之前无法获取长度,请尝试打开它 如果您想要的只是长度并且实际上没有播放它,那么处理MediaOpened事件并在触发时获取长度然后停止播放。

答案 1 :(得分:0)

您可以使用以下内容:

Microphone microphone = Microphone.Default;

using (IsolatedStorageFileStream stream = storage.OpenFile(filename, FileMode.Open, FileAccess.Read))
{
    TimeSpan duration = microphone.GetSampleDuration((int)stream.Length);
}

我从一篇关于在WP7上使用音频的有趣文章中选择了这个示例代码。 Here它是,代码也可以下载。希望这可以帮助! :)