gpt4 book ai didi

windows-mobile - 有没有一种简洁的方法可以在紧凑的框架 3.5 中播放 mp3 声音

转载 作者:行者123 更新时间:2023-12-03 18:21:35 24 4
gpt4 key购买 nike

我使用p/invoke方法播放wav声音。有调用windows media player播放mp3的方法声音,但它的缓慢和麻烦。

有没有简单的方法来播放短片mp3文件?

这主要用于应用程序提示 声音提示 当您不看屏幕而不看音乐时。

谢谢!

最佳答案

如果您正在寻找播放 mp3 的方法:

公共(public)课声音
{
[DllImport("aygshell.dll", SetLastError = true)]
私有(private)静态外部 IntPtr SndPlaySync(string pszSoundFile, uint dwFlags);
[DllImport("aygshell.dll")]
private static extern uint SndOpen(string pszSoundFile, ref IntPtr phSound);
[DllImport("aygshell.dll")]
私有(private)静态外部 uint SndPlayAsync(IntPtr hSound, uint dwFlags);
[DllImport("aygshell.dll")]
私有(private)静态外部 uint SndClose(IntPtr hSound);
[DllImport("aygshell.dll")]
私有(private)静态外部 uint SndStop(int SoundScope, IntPtr hSound);

常量 int SND_SCOPE_PROCESS = 0x1;
私有(private)静态随机_随机=新随机();

//初始化启动路径...您将在其中保存临时 mp3
私有(private)静态字符串_startupPath;
公共(public)静态字符串 StartupPath
{
得到{返回声音._startupPath; }
设置 { Sound._startupPath = value; }
}

私有(private)枚举 SND
{
同步 = 0x0000,
异步 = 0x0001,
节点默认 = 0x0002,
内存 = 0x0004,
循环 = 0x0008,
NOSTOP = 0x0010,
现在 = 0x00002000,
别名 = 0x00010000,
别名 ID = 0x00110000,
文件名 = 0x00020000,
资源 = 0x00040004
}

公共(public)静态无效播放声音(字符串文件名)
{
播放声音(文件名,空);
}

public static void PlaySound(string fileName, WaitCallback 回调)
{
SndStop(SND_SCOPE_PROCESS, IntPtr.Zero);
ThreadPool.QueueUserWorkItem(playSoundProcess,
新对象 [] {文件名,回调 });
}

私有(private)静态无效playSoundProcess(对象o)
{
对象[] par = (object[])o;
字符串文件名 = (string)par[0];
WaitCallback 回调 = (WaitCallback)par[1];
SndPlaySync(文件名,0);

尝试
{
文件.删除(文件名);
}
捕获
{ }

如果(回调!= null)
回调。调用(文件名);
}

公共(public)静态无效ClearSounds()
{
SndStop(SND_SCOPE_PROCESS, IntPtr.Zero);
尝试
{
string[] oldFiles = Directory.GetFiles(StartupPath, "*.mp3");
foreach(oldFiles 中的字符串 f)
文件.删除(f);
}
捕获
{ }
}

public static void PlaySound(byte[] mp3, WaitCallback 回调)
{
string temp = string.Format("{0}\\{1}-{2}.mp3", StartupPath, DateTime.Now.Ticks, _random.Next());
使用 (FileStream fs = File.Create(temp))
{
fs.Write(mp3, 0, mp3.Length);
}

播放声音(临时,回调);
}
}

关于windows-mobile - 有没有一种简洁的方法可以在紧凑的框架 3.5 中播放 mp3 声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/204562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com