C#调用API为什么不能正常播放声音文件

红帽小小 2008-04-02 03:01:59

using System;
using System.Collections;
using System.ComponentModel;
using System.Runtime.InteropServices;

namespace PlaySound
{
internal class Helpers
{
[Flags]
public enum PlaySoundFlags : int
{
SND_SYNC = 0x0000, /* play synchronously (default) */ //同步
SND_ASYNC = 0x0001, /* play asynchronously */ //异步
SND_NODEFAULT = 0x0002, /* silence (!default) if sound not found */
SND_MEMORY = 0x0004, /* pszSound points to a memory file */
SND_LOOP = 0x0008, /* loop the sound until next sndPlaySound */
SND_NOSTOP = 0x0010, /* don't stop any currently playing sound */
SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
SND_ALIAS = 0x00010000, /* name is a registry alias */
SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
SND_FILENAME = 0x00020000, /* name is file name */
SND_RESOURCE = 0x00040004 /* name is resource name or atom */
}

[DllImport("Winmm")]
public static extern bool PlaySound(string szSound, IntPtr hMod, PlaySoundFlags flags);
}

public class Sound
{
//播放
public static void Play(string strFileName)
{
Helpers.PlaySound(strFileName, IntPtr.Zero, Helpers.PlaySoundFlags.SND_ASYNC);
}

//关闭
public static void Stop()
{
Helpers.PlaySound(null, IntPtr.Zero, Helpers.PlaySoundFlags.SND_ASYNC);
}
}
}


调用Play()方法以后不能播放声音,只听见"当"的一声
...全文
404 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
红帽小小 2008-04-03
  • 打赏
  • 举报
回复
用SoundPlayer会出现下面的情况
位于 E:\music\Angel.mp3 的文件不是一个有效的波形文件。
xminsong 2008-04-02
  • 打赏
  • 举报
回复
为何不直接用SoundPlayer类?方便!
红帽小小 2008-04-02
  • 打赏
  • 举报
回复
指引个方向
红帽小小 2008-04-02
  • 打赏
  • 举报
回复
要播放mp3,wav,wma,等类型的文件
那应该怎么写
VirtualDesktop 2008-04-02
  • 打赏
  • 举报
回复
SND_ASYNC|SND_FILENAME
VirtualDesktop 2008-04-02
  • 打赏
  • 举报
回复
首先,这个函数只能播放wav格式
其次嘛...你还没理解他第三个参数的意义,你得给他加上个SND_FILENAME 告诉API你的第一个参数是个文件名~
就像这样
红帽小小 2008-04-02
  • 打赏
  • 举报
回复
那楼上的达人们,你们用我的程序放首歌试试
journeydj 2008-04-02
  • 打赏
  • 举报
回复
你播放的就是当:)
ericzhangbo1982111 2008-04-02
  • 打赏
  • 举报
回复
那就是播放声音了

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧