Android VideoView предотвращает смену видео

Я использую VideoView для воспроизведения видео Mp4. На экране есть кнопки, и в событии щелчка мне нужно изменить видео VideoView и воспроизвести. Я хочу, чтобы этот переход был максимально плавным. Это код, который я использовал в обработчике нажатия кнопки.

Uri uri = Uri.parse("android.resource://"+getPackageName() + "/"+R.raw.myvideo);
mainVideoView.setVideoURI(uri);
mainVideoView.requestFocus();
mainVideoView.start();

Я тестировал это на своем телефоне с Andorid 4, все работало нормально. Но когда я протестировал его на телефоне с Android 2.2, я был потрясен, увидев, что при нажатии кнопки часть экрана на секунду становится черной, и начинается новое видео. Я не могу позволить себе такую ​​задержку с моим заявлением.


person user1251226    schedule 06.03.2012    source источник
comment
Боюсь, вам придется с этим жить. Я не могу представить никакого обходного пути, который бы полностью решил эту проблему.   -  person yydl    schedule 06.03.2012
comment
О, это ошибка в 2.2, так как он отлично работает в андроиде 4.0? Любое другое обходное решение, чтобы пользователь не заметил этого?   -  person user1251226    schedule 06.03.2012
comment
Ну, я бы не рекомендовал это, но можно было бы использовать два медиаплеера (примечание: не с VideoView). Или вы можете поместить что-то (например, неподвижное изображение) между ними. И я не верю, что это ошибка — загрузка видео может занять некоторое время.   -  person yydl    schedule 06.03.2012


Ответы (1)


Попробуйте этот код

Это java-код

package com.android.video;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
public class VideoActivity extends Activity {
/** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.main);
        VideoView videoView = (VideoView)this.findViewById(R.id.videoView);
        MediaController mc = new MediaController(this);
        videoView.setMediaController(mc);
   //videoView.setVideoURI(Uri.parse("http://www.mediafire.com/?trc33d4yma3rkv3.mp4"));
     videoView.setVideoPath("/sdcard/movie.mp4");
        videoView.requestFocus();
        videoView.start();
    }
}

Это main.xml

 <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
 <VideoView android:id="@+id/videoView" android:layout_width="300dp" android:layout_height="300dp" /> 
 </LinearLayout>

Это файл манифеста

 <uses-permission android:name="android.permission.INTERNET" />
person Satya    schedule 06.03.2012