在 Windows 移动设备上播放声音文件(特别是 .wav)
Posted
技术标签:
【中文标题】在 Windows 移动设备上播放声音文件(特别是 .wav)【英文标题】:Play sound file on windows mobile device (.wav specifically) 【发布时间】:2012-06-27 17:40:16 【问题描述】:我想在移动设备上播放 .wav 文件。我想我的麻烦在于实际正确访问文件。以下是我目前拥有的代码:
string path = "\\Windows\\badRead.wav";
System.Media.SoundPlayer player = new System.Media.SoundPlayer(path);
player.PlaySync();
player.PlaySync();
我错过了什么?我收到的错误是“请确保指定位置存在声音文件。 它是在服务器上搜索wav文件吗?提前谢谢你。
【问题讨论】:
如果路径正确,这应该可以工作。您是否收到 FileNotFound 异常?您是否验证过该文件存在于 intermec 设备上? 确实存在。我认为问题在于未指定的驱动程序。它没有映射,我不熟悉以这种方式访问文件。 您无法浏览到该文件并单击它进行播放吗?如果它在那里失败,那么可能是驱动程序问题。 我可以浏览并播放它,但我无法以编程方式将其关闭。 您是否尝试将 .wav 复制到另一个文件夹?也许尝试与您的应用程序相同的文件夹SoundPlayer player = new SoundPlayer(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\badRead.wav")
【参考方案1】:
你读过这个吗:http://peterfoot.net/SystemMediaSoundPlayerVersusThePlaySoundAPI.aspx
在使用 player.PlaySync 之前,您可能必须先发出 player.Load():
private SoundPlayer Player = new SoundPlayer();
private void loadSoundAsync()
// Note: You may need to change the location specified based on
// the location of the sound to be played.
this.Player.SoundLocation = "http://www.tailspintoys.com/sounds/stop.wav";
this.Player.LoadAsync();
private void Player_LoadCompleted (
object sender,
System.ComponentModel.AsyncCompletedEventArgs e)
if (this.Player.IsLoadCompleted)
this.Player.PlaySync();
另一种方法是原生使用 Play>Sound API:
http://msdn.microsoft.com/en-us/library/ms228710%28v=vs.90%29.aspx
【讨论】:
我不确定我是否完全理解。 Player_LoadCompleted 永远不会被触发。 这实际上不起作用。它可以在我的本地机器上运行,但是当我将它投入生产到服务器时,声音不会播放。【参考方案2】:我使用 javascript 而不是尝试播放声音服务器端。
我找到了我的答案here
【讨论】:
以上是关于在 Windows 移动设备上播放声音文件(特别是 .wav)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 上使用 C++ 在特定音频设备上播放声音?