能不能贴出关键代码给大家看看,这样才能解决问题。
WCF是一种数据通讯机制,怎么跟播放MP3牵扯在一起了?
现在的需求就是通过客户端调用WCF服务,播放MP3文件,然后服务器通过音频线连接到一个广播设备上边,把声音广播出去
@厄尔尼诺: 那就不是WCF的问题。你的求助好没头脑。
这个问题,你应该先在本地建立项目,撇开WCF,实现MP3的播放功能。
WCF不过是提供数据而已,你打开文件需要用到流,WCF也可以给你提供流,当作STREAM看,就没异样了。
@519740105: MP3播放是没有问题的,但是功能的调用是由客户端发起的,也就是说流程是这样的:客户端请求播放MP3-》WCF接受请求进行播放-》声音输出到声卡-》广播设备进行广播。现在的关键节点是WCF播放的MP3不出声音,愿意就是现在windows不允许service播放声音,所以想请教一下有没有其他思路。
我自己是相出其他一个方式的是这样的流程客户端请求播放MP3-》服务端播放以Stream的形式返回给客户端-》客户端在本机声卡播放出来-》本机声卡生意传递到服务器(通过TCP监听的形式)-》服务器播放声音道服务器声卡-》声音通过音频线传到广播设备。这样的流程应该是可行,但是就是感觉太绕了。
我还实验过通过delegate的方式把播放MP3的工作放到host的windowsform中,很可惜还是不可以的。
现在就想请教一下各位有没有好的思路,因为没有做过服务端的开发,所以有些东西可能我自己就钻牛角尖了,谢谢了!
@厄尔尼诺: 你是想在服务器播放?
@519740105: 是的,必须得从服务器播放才行,不然的话播放这块应该就不用通过WCF了
@厄尔尼诺: 这个这个~~~
1、你要解决服务器开放播放声音的问题(权限)
2、你要解决通过服务播放声音的问题(应该不难的)
3、通过WCF把要播放的声音加入到一个队列(比如数据库、cache等)
4、通过另外一个服务监控这个队列,执行声音播放。
@519740105: 谢谢您的提示,我去试一下我试试放到一个全局的List中是否可行
如果你是要用WCF控制服务器播放MP3的话,这应该是不太提倡的。
因为服务不再可以和桌面用户交互。(微软原话: 在Vista或者之后的版本里面的确不行)
我觉得你的想法有问题,你应该让A客户端发送请求,服务器把声音传送到B客户端播放;B客户端和服务器在同一台机器,这样看起来就好像服务器有了UI一样,也便于维护;