android ---Using java surface on the native side

本文介绍如何通过JNI在Android的Native层直接进行视频渲染,以此提高VoIP和视频播放器等应用的性能。主要步骤包括Java层创建Surface并传递给Native层,在Native层注册、提交和注销缓冲区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于 android上的 voip及视频播放器类应用,为提高效率,把视频数据的渲染工作放在native层对提供性能有很大帮助,只需在java层创建一块surface,剩下的工作由native层处理,

无需转换为rgb格式到java层,画面控制仍然交给应用层。

大致过程:

java层创建surface,jni方式传给native层,native层在此surface上渲染

native层大致过程:

1. registerBuffers

2. postBuffer

3. unregisterBuffer


问题:native层获取Isurface没有权限,因为其是surface类的私有函数,需要修改framework 代码。

some good links :


http://matthiyosi.blogspot.com/2009/10/using-surface-in-android-native-code.html


http://matthiyosi.blogspot.com/2009/10/using-android-mediaplayer-framework-to.html

https://groups.google.com/forum/?fromgroups#!topic/android-developers/W3nVRXG4JD0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值