在Windows Phone上同时播放声音

编程入门 行业动态 更新时间:2024-10-10 21:31:59
本文介绍了在Windows Phone上同时播放声音的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

首先,我想说的是,我已经读到这里涉及到我的问题所有主题,在计算器(当然一派的),但这些研究没有提供任何解决我的问题。我正在为Windows Phone的应用程序,我需要同时播放两个声音,但这个code不起作用,因为那里是轻微的,但有两个声音之间明显的迪利,而且必须在我的项目中没有明显的延迟

At first, I want to say that I had read all topics related to my problem here, on stackoverflow (and of course googled), but those research provided no solution to my problem. I'm writing app for Windows Phone and I need to play two sounds simultaneously, but this code doesn't work, because there is slight, but noticeable dealy between two sounds, and there must be NO perceptible delay in my project.

Stream s1 = TitleContainer.OpenStream("C.wav"); Stream s2 = TitleContainer.OpenStream("C1.wav"); SoundEffectInstance sci = sc.CreateInstance(); SoundEffectInstance sci1 = sc1.CreateInstance(); sci.Play(); sci1.Play();

我也试过来执行两个WAV文件的简单组合,但它不会为我不知道工作的原因。 (ArgumentException的 - 确保指定的流包含有效PCM单声道或立体声波形数据 - 被抛出,调用SoundEffect.FromStream(WAVEFile.Mix时(S1,S2));

I also tried to perform a simple mix of two wav files, but it doesn't work for a reason that I don't know. (ArgumentException - Ensure that the specified stream contains valid PCM mono or stereo wave data. - is thrown, when calling SoundEffect.FromStream(WAVEFile.Mix(s1, s2));

public static Stream Mix(Stream in1,Stream in2) { BinaryWriter bw; bw = new BinaryWriter(new MemoryStream()); byte[] header = new byte[44]; in1.Read(header, 0, 44); bw.Write(header); in2.Seek(44, SeekOrigin.Begin); BinaryReader r1 = new BinaryReader(in1); BinaryReader r2 = new BinaryReader(in2); while (in1.Position != in1.Length) { bw.Write((short)(r1.ReadInt16() + r2.ReadInt16())); } r1.Dispose(); r2.Dispose(); bw.BaseStream.Seek(0, SeekOrigin.Begin); return bw.BaseStream; } Stream s1 = TitleContainer.OpenStream("C.wav"); Stream s2 = TitleContainer.OpenStream("C1.wav"); s3 = SoundEffect.FromStream(WAVEFile.Mix(s1, s2));

所以,没有人知道如何在同时播放两个声音?

So, does anyone know how to play two sounds at the time?

推荐答案

所以,你的第一个解决方案应该工作。我有另一种解决方案是,我知道作品的扭曲非常相似。

So your first solution SHOULD work. I have another solution that is very similar with a twist that I KNOW works.

static Stream stream1 = TitleContainer.OpenStream("soundeffect.wav"); static SoundEffect sfx = SoundEffect.FromStream(stream1); static SoundEffectInstance soundEffect = sfx.CreateInstance(); public void playSound(){ FrameworkDispatcher.Update(); soundEffect.Play(); }

原因你的第二个解决方案,没有工作是因为有非常具体的文件格式在Windows Phone都可以玩。

The reason your second solution didnt work is because there are very specific file formats that the windows phone can play.

支持的格式列表

的msdn.microsoft/en-us/library/windowsphone/develop/ff462087(v=vs.105).aspx

参考此code是我的博客

Reference for this code is my blog

www.anthonyrussell.info/postpage.php?name=60

您可以看到上面的解决方案,在这里工作。

You can see the above solution working here

的www.windowsphone/en-us/store/app/xylophone/fe4e0fed-1130-e011-854c-00237de2db9e

在回应低于这个code中的评论不工作我也贴了一个工作,在我的博客上发表的应用程序,实现了这个非常code。这就是所谓的木琴,它是免费的,你可以在页面的底部在这里下载code。

In response to the comment below that this code doesn't work I have also posted a working, published app on my blog that implements this very code. It's called Xylophone, it's free and you can download the code here at the bottom of the page.

anthonyrussell.info/postpage.php?name=60

更多推荐

在Windows Phone上同时播放声音

本文发布于:2023-11-05 18:16:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1561524.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:声音   Windows   Phone

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!