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

发布于 2024-12-11 20:46:49 字数 533 浏览 0 评论 0原文

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

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 未打开;

I jwant to get length of wave file. Currently I'm using following code

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;

However, it doesn't return the length from naturalduration.timespan.totalseconds , because me is not opened;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

喜爱皱眉﹌ 2024-12-18 20:46:49

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

If you can't get the length until the file is opened then try opening it.
If all you want is the length and to not actually play it then handle the MediaOpened event and when it is triggered get the length and then stop the playback.

似最初 2024-12-18 20:46:49

您可以使用如下内容:

Microphone microphone = Microphone.Default;

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

我从一篇有关在 WP7 上处理音频的有趣文章中挑选了此示例代码。 在这里,代码也可供下载。希望这有帮助! :)

You can use something like this:

Microphone microphone = Microphone.Default;

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

I picked this sample code from an interesting article on working with audio on WP7. Here it is, code is also available for download. Hope this helps! :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文