大家好,我是你的好朋友思创斯。今天说一说android实现播放视频_android小视频开发,希望您对编程的造诣更进一步.
获取surface
java部分:
surfaceview控件设置到界面中显示
surfaceview定义一个类来实现
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);
}
是否还在为ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!
【正版授权,激活自己账号】:
【官方授权 正版激活】:
实现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);
文章由思创斯整理,转载请注明出处:https://ispacesoft.com/141002.html