VideoView черная вспышка до и после воспроизведения - PullRequest
16 голосов
/ 03 декабря 2010

У меня есть VideoView, который я хочу использовать для воспроизведения видеоклипа.Я использую его для воспроизведения, и он работает.

VideoView vv = new VideoView(this);
vv.setVideoURI(Uri.parse("android.resource://cortex2.hcbj/raw/intro"));
setContentView(vv);
vv.start();

Однако я вижу черную вспышку непосредственно перед и после фрагмента ролика.Вспышка сама по себе не большая проблема, но ее чернота.Фон белый, поэтому, если вспышка белая или исчезнет, ​​все будет в порядке.

Ответы [ 14 ]

0 голосов
/ 15 июля 2011

Есть одна альтернатива, что вы используете медиа-контроллер для этого. Вот пример кода

videoView = (VideoView) this.findViewById(R.id.videoView);
MediaController mc = new MediaController(this);
videoView.setMediaController(mc);
videoView.setVideoURI(Uri.parse("http://c421470.r70.cf2.rackcdn.com/video_5983079.m4v"));
videoView.start();
videoView.requestFocus(); 

Попробуйте это.

0 голосов
/ 13 июля 2011

Где вы изменяете contentView (каким методом вы написали четыре строки кода выше)?

Вы должны устанавливать только contentView в методе onCreate() для Activity.Если вы делаете это где-то еще (например, в обратном вызове кнопки), вы должны вместо этого начать новое действие.

0 голосов
/ 13 июля 2011

Почему бы не использовать стили и темы

Можешь попробовать? Это может помочь

colors.xml

<drawable name="transparent">#00000000</drawable>

styles.xml

<style name="Transparent">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">
@android:style/Animation.Translucent
</item>
<item name="android:windowBackground">@drawable/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:colorForeground">#fff</item>
</style>

Чтобы установить тему для всех действий вашего приложения, откройте файл AndroidManifest.xml и отредактируйте тег, включив атрибут android: theme с именем стиля.

<application android:theme="@style/Transparent">
0 голосов
/ 19 апреля 2011

Эта вспышка происходит от смены текущего представления контента на другое. Вы можете попробовать добавить VideoView в XML-файл макета, а затем сослаться на него с (VideoView) findViewById(R.id.vid); вместо new VideoView(this); и установить представление содержимого для этого макета.

...