繁体   English   中英

声音播放的开始被切断

[英]Beginning of sound playback is cut off

我正在尝试从嵌入式资源播放 WAV,但它始终会在开始时从 0.5 秒到 2.0 秒的任何时间切断。 也就是说,如果 WAV 是录制的声音,说“大家好。今天的新闻……”,那么播放通常会从一开始就切断“大家好——”。

播放代码非常简单:

using System.Media;

play(GetResourceStream(audioItem));

...

private static void play(UnmanagedMemoryStream sndData)
{
   SoundPlayer sp = new SoundPlayer(sndData);
   sp.LoadCompleted += delegate( object sender, System.ComponentModel.AsyncCompletedEventArgs e)
   {
      sp.Play();
   };    
   sp.LoadAsync();
}

原始代码只是创建了SoundPlayer对象,然后调用了Play()方法。 我添加了LoadAsync()调用和LoadCompleted事件处理程序,以查看是否解决了问题,但它的行为似乎没有任何不同。

附加信息:声音播放似乎只在应用程序第一次调用SoundPlayer.Play()时被切断。 随后的电话似乎工作正常。

我刚刚遇到了同样的问题。 在应用程序中和通过外部媒体播放器(如 VLC)播放时,声音的开头都会被切断。 就我而言,问题与蓝牙扬声器有关。 将声音输出切换到有线扬声器后,它工作正常。

应该没有问题。 尝试将 wav 放入文件并从文件中播放。 如果问题仍然存在,我认为您应该检查声卡的各种效果设置,例如淡入淡出。

尝试播放“C:\Windows\Media\chord.wav”,它很短,甚至不到一秒。

System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"C:\Windows\Media\chord.wav");
player.Play();

如果您对“同步”播放没有问题,只需尝试SoundPlayer.PlaySync()方法。 在完全相同的情况下(即使用“嵌入式资源”),这对我来说效果很好。

我的问题确实是蓝牙扬声器...我断开连接然后重新连接,之后它工作正常。 我不必切换到有线扬声器。

问题发生在两个不同的微软播放器和 VLC 上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM