Я некоторое время борюсь с этим вопросом видео. Я думал, что у тебя могут быть идеи, которые помогут мне.Проблема с масштабированием VideoView
Итак, у меня есть этот VideoView в макете кадра, а сверху у меня есть ToggleButton, чтобы сделать масштабирование и вернуться с масштабирования.
<CustomVideoView
android:id="@+id/video_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:keepScreenOn="true" >
</CustomVideoView>
и у меня есть видео 480x360, и я подумал, что, делая увеличения в портретном, я изменить его на высоту экрана и расчетной ширину, на основе соотношения видео. (В альбомном иначе).
я продлил VideoView к CustomVideoView с помощью:
public class CustomVideoView extends VideoView {
protected int _overrideWidth = 480;
protected int _overrideHeight = 360;
public CustomVideoView(Context context) {
super(context);
}
public CustomVideoView(Context context, AttributeSet set) {
super(context, set);
}
public void resizeVideo(int width, int height) {
_overrideHeight = height;
_overrideWidth = width;
// not sure whether it is useful or not but safe to do so
getHolder().setFixedSize(width, height);
requestLayout();
invalidate(); // very important, so that onMeasure will be triggered
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(_overrideWidth, _overrideHeight);
}
}
на некоторых устройствах трюк отлично работает, но на Google Nexus с 4.0.3 он растягивает видео на экране и на Galaxy S 2.3.3 не работает вообще.
, так что я ничего не могу с этим поделать? если он является родным, кажется, что масштабирование никогда не будет работать одинаково на всех устройствах? Как насчет Nexus, у этого не должно быть специального кода? –
Я только что сравнил VideoView с 2.2 с одним из 4.0.3 и там же различия ... могут ли они быть теми, которые вызывают разное поведение? http://grepcode.com/file_/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/widget/VideoView.java/?v=diff&id2=2.2_r1.1 –
Нет, в 4.0.3 они просто добавили несколько состояний MediaPlayer и предоставили новый контроллер. Итак, я ничего не могу сказать о собственном коде. – OleGG