Android的textureview的播放方法
时间: 2023-12-25 11:04:44 浏览: 155
要使用 TextureView 播放视频,可以按照以下步骤进行:
1. 创建一个 MediaPlayer 对象并设置要播放的视频文件路径。
2. 在 TextureView 的 surfaceTextureAvailable 回调方法中获取 SurfaceTexture 对象并将其传递给 MediaPlayer 对象。
3. 在 MediaPlayer 对象的 prepareAsync() 方法中准备视频播放。
4. 在 MediaPlayer 对象的 onPrepared 回调方法中开始视频播放。
下面是一个简单的示例代码:
```java
public class MainActivity extends AppCompatActivity implements TextureView.SurfaceTextureListener {
private MediaPlayer mediaPlayer;
private TextureView textureView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textureView = findViewById(R.id.texture_view);
textureView.setSurfaceTextureListener(this);
}
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource("path/to/video/file");
mediaPlayer.setSurface(new Surface(surface));
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
// do nothing
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
mediaPlayer.release();
return true;
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {
// do nothing
}
}
```
在示例代码中,我们在 TextureView 的 surfaceTextureAvailable 回调方法中创建了 MediaPlayer 对象,并将其与 SurfaceTexture 对象关联起来。然后,我们在 MediaPlayer 对象的 onPrepared 回调方法中开始视频播放。在 TextureView 销毁时,我们释放了 MediaPlayer 对象。
阅读全文