android实现播放视频-金沙1005

android实现播放视频_android小视频开发glsurfaceview渲染rgb的数据,利用双缓冲空间机制。取出缓冲地址,将要渲染的数据copy到缓冲地址.获取surfacejava要做的事情surfaceview控件设置到界面中显示surfaceview定义一个类来实现…

android实现播放视频_android小视频开发

获取surface

 

java部分:

surfaceview控件设置到界面中显示

android实现播放视频_android小视频开发

surfaceview定义一个类来实现

android实现播放视频_android小视频开发

package com.example.hello;
import android.content.context;
import android.opengl.glsurfaceview;
import android.util.attributeset;
import android.view.surfaceholder;
import javax.microedition.khronos.egl.eglconfig;
import javax.microedition.khronos.opengles.gl10;
public class xpaly extends glsurfaceview implements runnable, surfaceholder.callback {
    public xpaly(context context , attributeset attrs) {
        super(context);
    }
    @override
    public void run() {
      open("/sdcard/pictures/rc.mp4",getholder().getsurface());
    }
    @override
    public void surfacecreated(surfaceholder var1)
    {
    }
    @override
    public void surfacechanged(surfaceholder var1, int var2, int var3, int var4)
    {
      new thread(this).start();
    }
    @override
    public void surfacedestroyed(surfaceholder var1)
    {
    }
    public native void open(string url_,object surface);
}
android实现播放视频_android小视频开发

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

实现surfaceview callback

 

 

需要android的库和头文件

#include 
#include 

 

 

c 部分

    //显示窗口初始化
    anativewindow *nwin = anativewindow_fromsurface(env,surface);
    int outwidth=vc->width;
    int outheight=vc->height;
    //设置native window的buffer大小,可自动拉伸
    anativewindow_setbuffersgeometry(nwin,outwidth,outheight,window_format_rgba_8888);
    anativewindow_buffer wbuf;

     //锁定窗口,取出空间
     anativewindow_lock(nwin,&wbuf,0);
     //取缓冲区地址
     uint8_t *dst = (uint8_t*)wbuf.bits;
     //数据拷贝到缓冲区中
     memcpy(dst,rgb,outwidth*outheight*4);
     //解锁窗口空间
     anativewindow_unlockandpost(nwin);

 

 

 

 

 

 

 

 

 

 

 

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/141002.html

(0)

相关推荐

  • android:layout_gravity=”center_horizontal”_androidgravity属性1.layout_gravity与gravity区别:gravity:是用来指定文字在控件中的对齐方式。layout_gravity:是用来指定控件在父控件(布局)的对齐方式。注意:当linearlayout的排列方式为horizontal时,只有垂直方向上的对齐方式才能生效;当linearlayout的排列方式为vertical时,只有水平方向上的对齐方式才能生效。2.代码中动态设置layo…

    2022年12月24日
  • android布局详解[通俗易懂]一、常用布局android系统中为我们提供的五大布局:linearlayout(线性布局)、framelayout(单帧布局)、absolutelayout(绝对布局)、tablellayout(表格布局)、relativelayout(相对布局)。其中最常用的的是linearlayout、tablellayout和relativelayout。这些布局都可以嵌套使用。(1)linearl

  • 美团外卖回应系统故障问题:系统升级导致_美团外卖加载失败本文讲述美团外卖android客户端团队在将app的crash率从千分之三做到万分之二过程中所做的大量实践工作,抛砖引玉,希望能够为其他团队提供

  • android 入门书籍1.android开发教程2.helloandroid3rdedition(我看了下,清晰版的)3.android应用开发揭秘4.android程序设计5.google android sdk开发范例大全(完整版)(有6部分)6.google android开发入门与实战…

    2022年12月13日
  • androidstudio 插件记录 ai提示自动补齐代码插件 codota tabnine 自动为color值命名框架 name that color …

  • android エロ_android l1.fragmentfragment译为“碎片”,是android3.0(api11)提出的,最开始是为了适配大屏的平板。fragment看起来和activity一样,是一个用户界面。可以结合多个fragments到一个activity中,来构建一个有多方面功能的ui,还可以重用同一个fragment在多个activities中。fragment可以当成是activity的一个组件,每个fragment有单独的生命周期,可以在activity运行时进行添加和移除fragment。因此,相比较于a

  • android 四大组件,五大存储,六大布局[通俗易懂]android四大组件android四大组件分别是:activity,service,contentprovider,broadcastreceiveractivityservicecontentproviderbroadcastreceiverandroid五大存储sharedpreferences方式文件存储方式sqlist存储…

    2022年12月19日
  • android studio unable to find eocd signature解决方法[亲测有效]今天早上来公司突然发现项目打包不了研究了一下应该是gradle版本冲突了解决方法就是build

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图