回 帖 发 新 帖 刷新版面

主题:如何在 .NET Compact Framework 中, 播放mp3档

想在Pocket PC 用API来播放 Mp3, 但是Coredll.dll只支援PlaySound(), 我应该如何处理? 请诸位先进不吝赐教, 感恩.
ps. 如果直接把mp3档案丢给系统, 它会开启Media Player, 但这不是我要的, 要能背景播放

回复列表 (共4个回复)

沙发

网络资源下载中心http://www.nrdc.cn/index.asp大量编程书免费售 不收钱不要邮费 如果本店没有你要的书请到这里给我留言 http://www.nrdc.cn/gbindex.asp 你们开发了东西没有网上空间可放可以到先放我这里来 http;//www.nrd.cn

板凳

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 楼

谢谢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 楼

试一试 unicode 的
mciSendStringW

注意后面那个 "w"
传参数的时候,先转成 unicode 的 byte[] 再传

mciSendStringW(byte[] cmd, byte[] recv, uint len, int hwnd);

我来回复

您尚未登录,请登录后再回复。点此登录或注册