介绍:
-
TextureView可以用来显示内容流。这样一个内容流例如可以显示视频或者OpenGL的场景,内容流可以来自本应用程序以及其他进程。
-
Textureview必须在硬件加速开启的窗口中。
-
与SurfaceView相比,TextureView不会创建一个单独的窗口,这使得它可以像一般的View一样执行一些变换操作,比如移动、动画等等,例如,可以通过调用myView.setAlpha(0.5f)将TextureView设置成半透明。
-
使用TextureView很简单:需要使用的就是SurfaceTexture,SurfaceTexture可以用于呈现内容。
界面很简单
activity_local_video.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/m_layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextureView
android:id="@+id/Textureview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
主要逻辑代码也很简单,给TextureView添加一个监听,在方法中开启播放视频的子线程
Activity.java:
public class LocalVideoPlaybackActivity extends AppCompatActivity implements TextureView.SurfaceTextureListener{
private String videoPath;
private TextureView textureView;
private MediaPlayer mediaPlayer;
private SurfaceTexture surfaceTexture;
private Surface surface;
@Override
protected v