Cocos Creator 使用ijkplayer+sprite渲染视频

别犹豫,投简历就完了

mark mark mark

目前正研究这个方案
不过texture怎么注册到c++层呢
就是图片右半面的逻辑 大佬是否能共享下这部分代码?

通过jsb注册,没有太理解你困惑的点在哪


现在传参报错 js里应该怎么传呢

c++中的实现

我觉得你这个思路就非常好

关注一下!

感谢鼓励!

getTexTure()获取到的是js层面的 cc.texture ,你是想把c++层面的和player绑定对吧

我换了个思路 解决了
把ffmpeg读取到的帧数据 uint8_t* 返回到了js层
然后在js层去做了渲染

引擎本身的jsb不支持 uint8_t*类型 这块需要自己处理一下

不错不错,谢谢分享,学到了!

生产者和消费者都是c++,每一秒调用25次jsb是否有必要(性能方面有测试过吗)?直接把解码出来的数据塞到c++的texture不是更好吗?

对 是这个意思

嗯 我也是这么思考的 但是实现的时候有点卡住了
最近没啥时间 有哪个小伙按这个思路调通了 希望可以分享下代码

在js端创建一个texture 然后通过jsb 注册 让他可以监听事件 c++texture代码如下

void Texture2D::registerEventListener(const std::string& eventName)
{
_customEventName = eventName;
_listenerID =EventDispatcher::addCustomEventListener(eventName, [&](const CustomEvent &evt){
//添加收到该事件的相关处理
updateWithNotification(evt);
});
}

void Texture2D::updateWithNotification(const CustomEvent &event)
{

}

生产者通过广播的方式 把数据给到消费者。

感谢大佬分享

前三步是怎么做的呢?

如何在c++层接收到js传递的texture呢,有具体的例子吗?

我的方案 c++接收到的是c++的数据 没有经过js。

有没有试过 发布到微信小游戏呢 :grin: