用Texture代替SurfaceView显示视频

纠结SurfaceView和TextureView,想用Texture代替SurfaceView显示视频。

 

TextureView在Android4.0之后推出,是为了弥补SurfaceView的不足。

TextureView可以用来显示内容流,这样一个内容流可以是视频,OpenGL场景。内容流可以来自本应用以及其他进程

TextureView必须在硬件加速开启的窗口中。

与SurfaceView相比,TextureView不会创建一个单独的窗口,这使得它可以向一般的View一样执行一些操作。

 

官方demo提供了一个相机预览到TextureView

 

public classMainActivity extends Activity implements SurfaceTextureListener{

 

    private Camera mCamera;

    private TextureView mTextureView;

   

   @Override

   protectedvoidonCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

       

       

        mTextureView = new TextureView(this);

        mTextureView.setSurfaceTextureListener(this);

       

        setContentView(mTextureView);

   }

 

    @Override

    public voidonSurfaceTextureAvailable(SurfaceTexture surface, int width,

            int height) {

       

          mCamera = Camera.open();

          try {

            mCamera.setPreviewTexture(surface);

            mCamera.startPreview();

        }catch(Exception e) {

            // TODO: handle exception

        }

    }

 

    @Override

    public void onSurfaceTextureSizeChanged(SurfaceTexturesurface, intwidth,

            int height) {

        // TODO Auto-generated method stub

       

    }

 

    @Override

    public booleanonSurfaceTextureDestroyed(SurfaceTexture surface) {

       

        mCamera.stopPreview();

        mCamera.release();

        return false;

    }

 

    @Override

    public voidonSurfaceTextureUpdated(SurfaceTexture surface) {

        // TODO Auto-generated method stub

       

    }

}

 

//添加相机权限

<uses-permission android:name="android.permission.CAMERA"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值