Как воспроизвести видео в VideoView? - PullRequest
4 голосов
/ 10 октября 2011

Я хочу воспроизвести видео в VideoView. Когда я пытаюсь это сделать, я получаю следующую ошибку:

Вот мой исходный код:

package com.video.listitem;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;

public class PlayVideo extends Activity {

     VideoView mVideoView;
     MediaController mc;
     String videourl;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.videoplay);

        try {
             mVideoView = (VideoView) findViewById(R.id.videoview);
             String videourl = "rtsp://v7.cache4.c.youtube.com/CiILENy73wIaGQl25yDUbxNXTRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp";
             mc = new MediaController(this);
             mVideoView.setMediaController(mc);
             mVideoView.requestFocus();
             mVideoView.setVideoURI(Uri.parse(videourl));
             mc.show();
             mVideoView.start();
         } catch (Exception e) {
         //TODO: handle exception
         }  
    }
}

Вот мой XML-файл:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbars="none"
    android:gravity="center">

    <VideoView
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:id="@+id/videoview" />

</LinearLayout>

Ответы [ 7 ]

3 голосов
/ 10 октября 2011

Попробуйте запустить приложение на устройстве, видео может не работать в эмуляторе ...

1 голос
/ 15 октября 2012

см. Мой ответ здесь в приведенном примере кода.Если видео не воспроизводится, попробуйте перекодировать его с помощью программы, например Ручной тормоз , и повторите попытку.Информация о поддерживаемых видеоформатах: Поддерживаемые Android форматы мультимедиа

1 голос
/ 05 марта 2012

Попробуйте добавить разрешение на подключение к интернету!

uses-permission android:name="android.permission.INTERNET"
0 голосов
/ 09 сентября 2018
    public void playVideo() {
            videoView = findViewById(R.id.vid);
 videoView.setVideoPath("rtsp://v7.cache4.c.youtube.com/CiILENy73wIaGQl25yDUbxNXTRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp")
            videoView.start();
        }

Просто вызовите эту функцию в вашем методе onCreate ()

0 голосов
/ 09 сентября 2018

Ответ на эту проблему может быть в этом сообщении :

Возвращение false или отсутствие OnErrorListener вообще приведет к тому, что OnCompletionListener будетcall.

Так что верните true вместо false из функции, и ошибка не будет отображаться, т.е.

video.setOnErrorListener(new OnErrorListener() {

    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.d("video", "setOnErrorListener ");
        return true;
    }
});
0 голосов
/ 30 мая 2012

Хорошо, первое, что вы хотите сделать, это очистить макет, это ваша первая проблема:

сначала разбейте ее и сделайте проблему видимой:

Вы должны были поймать ошибку, в которой отсутствует закрывающий колпачок после центра ", просто добавьте"> "... и все. Очистите проект, и вы увидите видео rtsp. И ваше интернет-разрешение, как указано ранее..

0 голосов
/ 16 мая 2012

Может быть, URL-адрес не является правильным. Попробуйте воспроизвести этот поток, используя vlc player. Если это сыграно, то мы можем посмотреть на другую возможную причину

...