我想知道波形文件的长度。目前我正在使用以下代码
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
未打开;
答案 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它是,代码也可以下载。希望这可以帮助! :)