Видео как заставка вместо картинки - PullRequest
12 голосов
/ 22 ноября 2011

Я делаю учебник по программированию для Android на заставках, где вы показываете изображение или текст в течение 5 секунд, а не в основном приложении.У меня вопрос ... Вместо текста или рисунков я хочу отобразить видеофайл в течение 5 секунд, прежде чем он перейдет на следующую страницу приложения.

Я не говорю о загрузке приложения, о котором я говорюкогда он загружен, и вы программируете его для отображения чего-либо на отдельной странице Java и XML для отображения чего-то, а затем переходите к чему-то другому ... вот мой текущий код.он отображает файл видео мультимедиа без запуска / остановки и т.д ..

Ответы [ 5 ]

10 голосов
/ 11 августа 2016

1) Создать класс SplashScreen.java.

2) Создайте необработанную папку в каталоге res (res / raw).

3) Вставьте видеофайл в формате mp4 в эту необработанную папку (если у вас нет примера mp4, его можно скачать по ссылке ниже). http://www.mediafire.com/download/p05ki89i2dt5x2x/splash.mp4

4) Затем добавьте следующий код в ваш класс SplashScreen.java.

public class SplashScreenActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        VideoView videoHolder = new VideoView(this);
        setContentView(videoHolder);
        Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splash);
        videoHolder.setVideoURI(video);

        videoHolder.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                jump();
            }
        });
        videoHolder.start();
    } catch (Exception ex) {
        jump();
    }
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    jump();
    return true;
}

private void jump() {
    if (isFinishing())
        return;
    startActivity(new Intent(this, MainActivity.class));
    finish();
}

}

Примечание: splash_activity.xml не требуется.

8 голосов
/ 03 апреля 2013

Надеюсь, это поможет вам. Вы просто создаете простой VideoView для создания заставки для видео.

Извлечение исходного кода прослушивания и простых шагов, что является наилучшей практикой для создания заставки

5 голосов
/ 22 ноября 2011

Используйте MediaPlayer вместе с VideoView. Затем вы можете «прослушать», когда закончится воспроизведение видео, установив OnCompletionListener на MediaPlayer.

Смотрите здесь: http://developer.android.com/reference/android/media/MediaPlayer.html И здесь: http://developer.android.com/reference/android/widget/VideoView.html

Также обратите особое внимание на диаграмму состояний на справочной странице MediaPlayer. Это может быть немного сложно и, как известно, сбило с толку нескольких человек.

1 голос
/ 08 сентября 2015
imgAnim=(VideoView)findViewById(R.id.animimage);

String uriPath = "android.resource://com.petnvet/" + R.drawable.vidio;
Uri uri = Uri.parse(uriPath);
imgAnim.setVideoURI(uri);
imgAnim.requestFocus();
imgAnim.start();
//  imgAnim.setVideoPath("android.resource://com.myapplication/" + R.drawable.vidio);
int SPLASH_DISPLAY_LENGTH = 3000;
new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        Intent mainIntent = new Intent(SplashScreen.this, Login.class);
        startActivity(mainIntent);
        finish();
    }
}, SPLASH_DISPLAY_LENGTH);
0 голосов
/ 28 июня 2016

Вот код для добавления видео.Если вам нужно добавить элементы управления видео, такие как пауза или поиск и т. Д., Вы можете добавить их с помощью:

vv.setMediaController (new MediaController (this));

Остальной код:

VideoView vv;

@Override

protected void onCreate(Bundle savedInstanceState)

{

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_splash);

    vv=(VideoView)findViewById(R.id.videoView);
    Uri path=Uri.parse("android:resource://"+getPackageName()+"/"+R.raw.hello);
    vv.setVideoURI(path);
    vv.setMediaController(new MediaController(this));

   vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
   {
       @Override
       public void onCompletion(MediaPlayer mp) {
           Intent in=new Intent(splash.this,MainActivity.class);
        startActivity(in);
           finish();

       }
   });
    vv.start();
...