3775|5

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于tcpmp播放器背景播放的问题! [复制链接]

我下的版本是tcpmp.src.0.72RC1,通过修改,现在可以在应用中实现控制player_ce3.exe的play、stop、pause、exit的功能了,
我的目的是想通过该播放器在背景播放MP3,遇到很多问题,想问问大家:
1、我在界面中点选了一首mp3后,通过CreateProcess(TCPMPPlayerPath, mp3Path,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,NULL,&pp);
   播放是可以放的,但是我换选一首歌的时候,再次调用CreateProcess,就导致打开了两个播放器,有没有办法直接把一个MP3的路径传给播放器,而不是再
   次打开它呢?
2、如何得到TCPMP的当前播放进度的时间值?

最新回复

我是在我的应用中打开SD卡中的tcpmp.exe的,我的目的是整个操作过程tcpmp的界面永远隐藏的,也就是在背景中播放, 今天看了一天源码中的interface部分,还是没看明白流程,我是调用下面Player_start(TCHAR* pszPlayerPath,TCHAR* pszFilePath) 函数来打开tcpmp的,但是打开以后tcpmp总在最顶层,把我应用的界面挡住了,我SetWindowPos把我的应用窗口设为HWND_TOP也不行, 把tcpmp窗口设为HWND_BOTTOM也没变,修该TCPMP的interface.c中的Command(intface* p,int Cmd)函数, 把case MSG_INIT: SetForegroundWindow(p->Win.Wnd)改为ShowWindow(p->Win.Wnd, SW_HIDE)后,倒是隐藏了,可是它是先打开再隐藏的,界面闪了一下, 不知道有什么办法,修改哪个地方能让我打开tcpmp的时候就把它初始化为隐藏的? DWORD CPlayerCtrl::Player_start(TCHAR* pszPlayerPath,TCHAR* pszFilePath) {         PROCESS_INFORMATION procInfo;         BOOL bRet;         if(pszPlayerPath == NULL)                 return -1;         bRet = CreateProcess(pszPlayerPath, //tcpmp.exe 's fullpath                              pszFilePath,   // mp3's fullpath                              NULL,                              NULL,                              FALSE,                              CREATE_NEW_CONSOLE,                              NULL,                              NULL,                              NULL,                              &procInfo);     if (bRet == 0) {             return -1;                     }         CloseHandle(procInfo.hProcess);         CloseHandle(procInfo.hThread);         return 0; }                   详情 回复 发表于 2008-7-2 17:56
点赞 关注

回复
举报

86

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1,简单啊,先把第一个进程关掉

2,p->TitleTime
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
选下一首歌怎么会又创建一个进程呢.里面有下一首的命令啊.
你还是多看看源代码吧.
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果是“下一首”,那么有“下一首”的命令(函数)。
如果是随机选择另一首,那么其实是执行了“停止”然后“打开”的动作,所以就是关闭当前歌曲的播放线程,然后再次打开线程播放新歌。
 
 
 

回复

45

帖子

0

TA的资源

一粒金砂(初级)

5
 
lz的程序和tcpmp是两个不同的进程?这样可不太好,要得到播放时间需要进程间通讯.
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 
我是在我的应用中打开SD卡中的tcpmp.exe的,我的目的是整个操作过程tcpmp的界面永远隐藏的,也就是在背景中播放,
今天看了一天源码中的interface部分,还是没看明白流程,我是调用下面Player_start(TCHAR* pszPlayerPath,TCHAR* pszFilePath)
函数来打开tcpmp的,但是打开以后tcpmp总在最顶层,把我应用的界面挡住了,我SetWindowPos把我的应用窗口设为HWND_TOP也不行,
把tcpmp窗口设为HWND_BOTTOM也没变,修该TCPMP的interface.c中的Command(intface* p,int Cmd)函数, 把case MSG_INIT:
SetForegroundWindow(p->Win.Wnd)改为ShowWindow(p->Win.Wnd, SW_HIDE)后,倒是隐藏了,可是它是先打开再隐藏的,界面闪了一下,

不知道有什么办法,修改哪个地方能让我打开tcpmp的时候就把它初始化为隐藏的?



DWORD CPlayerCtrl::Player_start(TCHAR* pszPlayerPath,TCHAR* pszFilePath)
{
        PROCESS_INFORMATION procInfo;
        BOOL bRet;

        if(pszPlayerPath == NULL)
                return -1;
        bRet = CreateProcess(pszPlayerPath, //tcpmp.exe 's fullpath
                             pszFilePath,   // mp3's fullpath
                             NULL,
                             NULL,
                             FALSE,
                             CREATE_NEW_CONSOLE,
                             NULL,
                             NULL,
                             NULL,
                             &procInfo);
    if (bRet == 0) {
            return -1;            
        }
        CloseHandle(procInfo.hProcess);
        CloseHandle(procInfo.hThread);
        return 0;
}                 
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表