在WP8中将ogg文件解码为wav

时间:2014-05-11 23:15:00

标签: c# audio windows-phone-8 ogg nvorbis

我想将ogg文件转换为wav,然后在wp8 devives上播放。 我已经检查了很多解决方案,但没有一个有效。这看起来很有希望,但有些东西不起作用:

string _audioPath = "/SomeProject;component/Sounds/a_dog.ogg";
var stream = Application.GetResourceStream(new Uri(_audioPath, UriKind.Relative)).Stream;
using (var vorbis = new NVorbis.VorbisReader(stream, true))
        {
            float[] buf = new float[vorbis.TotalSamples];
            vorbis.ReadSamples(buf, 0, (int)vorbis.TotalSamples);
        }

当我执行它时,我在VorbisReader构造中看到FileNotFoundException。我还检查了流是否可读,它是。我能够使用Read方法获取文件内容。

你有什么想法它为什么不起作用?也许你知道一些其他的wp8库可以解码ogg文件吗?

[编辑]我下载了NVorbis的源代码并直接从我的项目中使用它,当我这样做时,我没有得到任何FileNotFoundExceptions,一切似乎都有效。也许这个例外是由于缺少库造成的?我已经添加了NVorbis参考...

1 个答案:

答案 0 :(得分:0)

我认为您遇到了与this guy相同的问题。简短版本:我相信你的包URI应该是" pack:// application:,,, / SomeProject; Component / Sounds / a_dog.ogg"。 NVorbis本身并没有抛出异常,而是导致资源流这样做......