主题:如何在 .NET Compact Framework 中, 播放mp3档
etenm500
[专家分:0] 发布于 2005-09-23 16:17:00
想在Pocket PC 用API来播放 Mp3, 但是Coredll.dll只支援PlaySound(), 我应该如何处理? 请诸位先进不吝赐教, 感恩.
ps. 如果直接把mp3档案丢给系统, 它会开启Media Player, 但这不是我要的, 要能背景播放
回复列表 (共4个回复)
沙发
qq9199333 [专家分:60] 发布于 2005-09-23 17:08:00
网络资源下载中心http://www.nrdc.cn/index.asp大量编程书免费售 不收钱不要邮费 如果本店没有你要的书请到这里给我留言 http://www.nrdc.cn/gbindex.asp 你们开发了东西没有网上空间可放可以到先放我这里来 http;//www.nrd.cn
板凳
vrace [专家分:3590] 发布于 2005-09-23 21:19:00
using System.InteropServices;
class Test
{
[DllImport("winmm.dll")]
public extern static void MciSendStringA(string command, string retStr, uint cchReturn, int hwnd);
public Test()
{
}
public void Play()
{
mciSendStringA("open xxx.mp3 alias sounder", null, 0, 0);
mciSendStringA("play sounder no wait", null, 0, 0);
}
public void Stop()
{
mciSendStringA("stop sounder", null, 0, 0);
mciSendStringA("close sounder", null, 0, 0);
}
}
不知道 compact fx 下行不行
3 楼
etenm500 [专家分:0] 发布于 2005-09-26 11:02:00
谢谢vrace兄的回答.
1.因为程序要在Pocket PC上跑, 所以使用 Compact framework 来当开发工具, Windows mobile 2002/2003 (Pocket PC 的作业系统)上. 它把许多功能都取消, 在desktop PC 轻而易举的功能, 在Mobile device不见得能够享用. (我是新手, 最近在搞这东东, 试了几种方法, 都不成)
2.试呼叫
[DllImport("coredll.dll")]
public extern static void MciSendStringA(string command, string retStr, uint cchReturn, int hwnd);
结果是不支援的错误讯息.
3.另外试用Media Player 来播放, 但是Media Player画面会出现, 该如何把它隐藏?
[DllImport("coredll.dll")]
private extern static bool ShellExecuteEx(ShellExecuteInfo ex);
----
ShellExcuteEx("XXX.MP3");
----
4.我目前用PlaySound()暂代, 它只能播放Wav档, 但是Wav档实在太大了, 不符目标, 所以恳请各位帮忙,提供方法,想法与经验与我.
非常感恩!
4 楼
vrace [专家分:3590] 发布于 2005-09-27 10:40:00
试一试 unicode 的
mciSendStringW
注意后面那个 "w"
传参数的时候,先转成 unicode 的 byte[] 再传
mciSendStringW(byte[] cmd, byte[] recv, uint len, int hwnd);
我来回复