6221|14

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

DX们,TCPMP又来问题了。。关于player节点的set的参数。。 [复制链接]

myplayer->Set(myplayer,PLAYER_PLAY,1,sizeof(int));

这个报错:F:\GPS项目\软件\GPS(09.03.13)\MusicDlg.cpp(264) : error C2664: 'int (void *,int,const void *,int)' : cannot convert parameter 3 from 'const int' to 'const void *'

可是我改成myplayer->Set(myplayer,PLAYER_PLAY,0,sizeof(int));
//第三个参数改成0,即暂停播放,就没有报错,是什么问题呢?

最新回复

去掉了interface.plg没有。因为这个里面已经调用一次Context_Init() 因为你这里只是音乐的播放,没有必要Interface.plg这个插件  详情 回复 发表于 2009-3-19 16:47
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
mark
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
mark
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
static int Set(player_base* p, int No, const void* Data, int Size)
{
…………
case PLAYER_PLAY:
        if (Size == sizeof(bool_t))
        {
                if (*(bool_t*)Data)
                {
                        if (!p->Format && p->Wnd && p->PlayListCount)
                        {
                                if (Load(p,0,0,0) == ERR_FILE_NOT_FOUND)
                                                        NextPrev(p,1,1,1);
                        }

                        if (!p->Format)
                        {
                                Result = ERR_INVALID_DATA;
                                break;
                        }

                        p->Play = 1;
                        p->FFwd = 0;
                }
                else
                {
                        p->Play = 0;
                        p->FFwd = 0;
                        p->Fill = 1;
                }
                Result = SetPlay(p,0);
        }
        break;

…………

}

当你设置为0的时候,就跳到了else里面,当然会暂停。
之所以会报错,是因为第三个参数类型的错误,第三个参数是tcpmp自己定义的一个参数类型bool_t
这个bool_t其实就是一个int,typedef int bool_t;
所以,你后面的Size=sizeof(int);

你可以这样改一下
int  play = 1;
myplayer->Set(myplayer,PLAYER_PLAY,&play ,sizeof(int));
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 jinlking 的回复:
static int Set(player_base* p, int No, const void* Data, int Size)
{
…………
case PLAYER_PLAY:
if (Size == sizeof(bool_t))
{
if (*(bool_t*)Data)
{
if (!p->Format && p->Wnd && p->PlayListCount)
{
if (Load(p,0,0,0) == ERR_FILE_NOT_FOUND)
NextPrev(p,1,1,1);
}

if (!p->Format)
{
Result = ERR_INVALID_DATA;
break;
}

p->Play = 1;
p->FFwd = 0;
}
else
{
p…


刚刚看了你之前回我的帖子,呵呵一样的回答!谢谢!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
问题解决了没有啊
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 jinlking 的回复:
问题解决了没有啊


        Context_Init((tchar_t*)T("TCPMP"),(tchar_t*)T("0.72SRC"),3,NULL,NULL);


    //上下文创建
       
    context* p=Context();

         //播放模块的初始化
        player* myplayer = NULL;
        if(p) myplayer = (player*)(p->Player);
       

        PlayerAdd(myplayer,0, L"\\Storage Card\\MP3\\xinrudaoge.mp3", NULL);
       
        int n = 0;

        myplayer->Set(myplayer,PLAYER_PLAY,&n,sizeof(int));


没有声音呵呵,再研究看看,jinlking  DX也帮忙看看呵呵
 
 
 

回复

99

帖子

0

TA的资源

一粒金砂(初级)

8
 
调节一下音量试试?
不会是静音了吧。
WinCE有声音吗?
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

9
 
你让n = 1看看
如果这都不行的话就调节一下音量  默认的是应该有声音的
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

10
 
我用TCPMP程序打开MP3时有声音的,板子也是有声音的,我试试看。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

11
 
我用TCPMP程序打开MP3时有声音的,板子也是有声音的,我试试看。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

12
 
执行以下代码的时候仍旧没有声音,不知道怎么回事,望指点,以下是我用按钮事件来激活的代码,按下按钮就执行以下代码:
Context_Init((tchar_t*)T("TCPMP"),(tchar_t*)T("0.72SRC"),3,NULL,NULL);


    //上下文创建
       
    context* p=Context();

         //播放模块的初始化
        player* myplayer = NULL;
        if(p) myplayer = (player*)(p->Player);


        PlayerAdd(myplayer,0, L"\\Storage Card\\MP3\\xinrudaoge.mp3", NULL);

        int n = 1;

        int vol = 50;

        myplayer->Set(myplayer,PLAYER_VOLUME,&vol,sizeof(int));

        myplayer->Set(myplayer,PLAYER_PLAY,&n,sizeof(int));

不知道哪里漏了什么东西
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

13
 
首先文个问题,你是怎么把TCPMP添加到你的工程中的
只是添加了common.dll嘛?
common只是一个框架,很精简也很复杂,但是没有实际的播放音乐的功能
播放mp3 还要对应的spliter和codec的还有很多必须要的模块

建议你把你能够播放音乐的tcpmp下面的除了player.exe interface.plg外所有的文件都拷贝到你工程生成的exe下
然后运行看一下。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 12 楼 jinlking 的回复:
首先文个问题,你是怎么把TCPMP添加到你的工程中的
只是添加了common.dll嘛?
common只是一个框架,很精简也很复杂,但是没有实际的播放音乐的功能
播放mp3 还要对应的spliter和codec的还有很多必须要的模块

建议你把你能够播放音乐的tcpmp下面的除了player.exe interface.plg外所有的文件都拷贝到你工程生成的exe下
然后运行看一下。


我把common.dll和common.lib放进应用程序文件夹,这样当然不行了,后来我把所有的插件都放进去,没有加以判断那些

必要的,这样理论上应该没问题吧,可惜还是不能听到声音,那些插件是我当时编译TCPMP工程生成的,我就搬过来用了。

不知道这样正确不。。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

15
 
去掉了interface.plg没有。因为这个里面已经调用一次Context_Init()
因为你这里只是音乐的播放,没有必要Interface.plg这个插件
 
 
 

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

随便看看
查找数据手册?

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-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表