我用:
mediaPlayer.setVideoScalingMode(android.media.MediaPlayer.VIDEO_SCALING_MODE_SCALE_TO_FIT);
但它不起作用我想将视频放到屏幕上。
答案 0 :(得分:2)
VIDEO_SCALING_MODE_SCALE_TO_FIT
是值,因此请调用
mediaPlayer.setVideoScalingMode(android.media.MediaPlayer
.VIDEO_SCALING_MODE_SCALE_TO_FIT);
没有任何区别。
http://developer.android.com/reference/android/media/MediaCodec.html#setVideoScalingMode(int)
默认为“缩放以适合”。
例如,抓住以下基于MediaCodec的播放器:
https://github.com/google/ExoPlayer
并在MediaCodecVideoTrackRenderer.java中设置VIDEO_SCALING_MODE_SCALE_TO_FIT
或VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING
进行实验
再添加一点。
您要完成的任务可以通过以下方式完成:
在SurfaceView上实现onMeasure。
获取视频尺寸。
使用不同的值调用setMeasuredDimension,具体取决于您是否要拉伸,调整或裁剪视频:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = getDefaultSize(videoWidth, widthMeasureSpec);
int height = getDefaultSize(videoHeight, heightMeasureSpec);
// Do not change w & h for screen fill
setMeasuredDimension(width, height);
// Experiment by changing width & height compared to the video size
// for different results
}