第二种方法导致视频一直是黑色的
时间: 2024-03-08 10:50:10 浏览: 17
如果第二种方法导致视频一直是黑色的,可能是因为在surfaceChanged()方法中,你只调用了一次drawColor()方法,导致整个SurfaceView的背景只被绘制了一次,导致视频播放时仍然是黑色的。
你可以尝试在SurfaceView的回调函数surfaceCreated()中,再次调用一次drawColor()方法,将整个SurfaceView的背景设置为黑色。这样,在视频播放时,SurfaceView的背景就不会是黑色了。
以下是修改后的代码示例:
```java
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Paint mPaint;
public MySurfaceView(Context context) {
super(context);
mHolder = getHolder();
mHolder.addCallback(this);
mPaint = new Paint();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Canvas canvas = mHolder.lockCanvas();
canvas.drawColor(Color.BLACK);
mHolder.unlockCanvasAndPost(canvas);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Canvas canvas = mHolder.lockCanvas();
canvas.drawColor(Color.BLACK);
mHolder.unlockCanvasAndPost(canvas);
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// do nothing
}
}
```
希望这次能够帮到你!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)