sda*_*bet 7 android surfaceview
我尝试使用a SurfaceView和a 播放相同的视频,TextureView并注意到使用a 渲染的图像TextureView比使用a更具有别名(更不"平滑")SurfaceView.
这是什么原因?有没有办法配置渲染TextureView看起来更好?
在TextureView使用这样的:
TextureView textureView = new TextureView(this);
textureView.setSurfaceTextureListener(new SurfaceTextureListener() {
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
Log.i("test", "onSurfaceTextureAvailable()");
MediaPlayer player = MediaPlayer.create(TestActivity.this, Uri.parse(VIDEO_URL));
Surface surface = new Surface(surfaceTexture);
player.setSurface(surface);
player.start();
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {
Log.i("test", "onSurfaceTextureUpdated()");
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
Log.i("test", "onSurfaceTextureSizeChanged()");
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
Log.i("test", "onSurfaceTextureDestroyed()");
return false;
}
});
setContentView(textureView);
Run Code Online (Sandbox Code Playgroud)
对于SurfaceView:
SurfaceView surfaceView = new SurfaceView(this);
surfaceView.getHolder().addCallback(new Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
Log.i("test", "surfaceCreated()");
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
Log.i("test", "surfaceDestroyed()");
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Log.i("test", "surfaceChanged()");
MediaPlayer player = MediaPlayer.create(TestActivity.this, Uri.parse(VIDEO_URL));
player.setSurface(holder.getSurface());
player.start();
}
});
setContentView(surfaceView);
Run Code Online (Sandbox Code Playgroud)
sda*_*bet 13
好吧,似乎在TextureView上应用缩放(除1之外)就可以实现我正在寻找的"平滑"效果.
textureView.setScaleX(1.00001f);
Run Code Online (Sandbox Code Playgroud)
这听起来像一个奇怪的黑客...但它的确有效.挖掘改变渲染方面的缩放比例会很有趣......
| 归档时间: |
|
| 查看次数: |
2894 次 |
| 最近记录: |