python androidhelper 播放 音频_【Android音视频开发】从AVFrame到MediaFrame数组(四)

本文记录的是从AVFrame到MediaFrame数组的实现过程

目的

前提:假定你已经看完了

实现从AVFrame到自定义实体类MediaFrame数组的过程

修改Java层回调接口

JNIHelper中添加一个方法:

public class JNIHelper {

public void onReceived(MediaFrame[] frame){

// TODO: Java层接收到MediaFrame[]后,可以开始搞事情了

}

}

封装MediaFrame数组

Native层封装MediaFrame数组,分为2步:

1. 创建MediaFrame数组对象

jclass clz_media_frame = env->FindClass("me/oogh/xplayer/MediaFrame");

// NewObjectArray(数组大小, 元素类型, 元素初始化值)

jobjectArray media_frames = env->NewObjectArray(2, clz_media_frame, NULL);

2. 给数组赋值

假定这里你已经看过

// SetObjectArrayElement(数组对象, 索引角标, 元素对象)

env->SetObjectArrayElement(media_frames, 0, obj1);

env->SetObjectArrayElement(media_frames, 1, obj2);

Native回调Java层接口

jclass clz_jni_helper = env->FindClass("me/oogh/xplayer/JNIHelper");

jmethodID cb_received = env->GetMethodID(clz_jni_helper, "onReceived", "([Lme/oogh/xplayer/MediaFrame;)V");

env->CallVoidMethod(obj, cb_received, media_frames);

至此,从AVFrame到MediaFrame数组,在将MediaFrame数组上传,就已经完成了,《从AVFrame到MediaFrame数组》系列记录结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值