Видео не воспроизводится в Android - PullRequest
7 голосов
/ 04 января 2012

Видео не работает должным образом в приведенном ниже коде.В чем может быть проблема для этого?

MediaController mediaController = new MediaController(getBaseContext());
mediaController.setAnchorView(videoweb);

Uri video = Uri.parse("http://www.youtube.com/v/wwI2w2YHkCQ?fs=1");
videoweb.setMediaController(mediaController);
videoweb.setVideoURI(video);
videoweb.start();

Ошибка:

Невозможно воспроизвести видеоК сожалению, это видео не может быть воспроизведено.

Ответы [ 5 ]

6 голосов
/ 04 января 2012

Указанная вами ссылка http://www.youtube.com/v/wwI2w2YHkCQ?fs=1 предназначена для HTML-страницы.URI, предоставляемый для setVideoURI(), должен представлять собой файл мультимедиа, например MP4 или AVI .

VideoView не может проанализировать страницу HTML.Он может только декодировать и воспроизводить видеофайл или передавать потоковое видео (в этом случае URI должен указывать на медиафайл, например http://people.sc.fsu.edu/~jburkardt/data/mp4/cavity_flow_movie.mp4).См. Вопрос переполнения стека Использование VideoView для потоковой передачи или прогрессивной загрузки видео .

Для открытия ссылки на YouTube необходимо использовать WebView.

2 голосов
/ 10 января 2012

VideoView и Mediaplayer могут воспроизводить только форматы, указанные в документе Поддерживаемые Android форматы мультимедиа .

Ссылка на видео YouTube, которую вы дали,для HTML-страницы .Если вы воспроизводите HTML-страницу, упомянутую Karthik, лучше использовать Webview.

String url = "your_youtube_link";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

Если вы хотите, чтобы по этой ссылке просматривалось только видео, оставьте все остальные детали на странице.,Предположим, что это ссылка на YouTube http://www.youtube.com/watch?v=ZC7ZOGpM2cU&feature=g-logo&context=G233b464FOAAAAAAABAA

Если вы проанализируете источник HTML-страницы YouTube, вы можете увидеть следующую часть:

<link rel="alternate" type="application/json+oembed" href="http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3DZC7ZOGpM2cU&amp;format=json" title="Bigg Boss 5: Juhi Parmar wins Big Boss season 5">
<link rel="alternate" type="text/xml+oembed" href="http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3DZC7ZOGpM2cU&amp;format=xml" title="Bigg Boss 5: Juhi Parmar wins Big Boss season 5">
<meta property="fb:app_id" content="87741124305">
<meta property="og:url" content="http://www.youtube.com/watch?v=ZC7ZOGpM2cU">
<meta property="og:title" content="Bigg Boss 5: Juhi Parmar wins Big Boss season 5">
<meta property="og:description" content="Ntv News: Juhi Parmar wins Bigg Boss 5 - Juhi Parmar wins &#39;Bigg Boss 5&#39;, takes home Rs.1 crore - No kid for now, keen for good work: Juhi Parmar">
<meta property="og:type" content="video">
<meta property="og:image" content="http://i3.ytimg.com/vi/ZC7ZOGpM2cU/hqdefault.jpg">
<meta property="og:video" content="http://www.youtube.com/v/ZC7ZOGpM2cU?version=3&amp;autohide=1">
<meta property="og:video:type" content="application/x-shockwave-flash">
<meta property="og:video:width" content="396">
<meta property="og:video:height" content="297">
<meta property="og:site_name" content="YouTube">

В этом извлеките следующее

<meta property="og:video" content="http://www.youtube.com/v/ZC7ZOGpM2cU?version=3&amp;autohide=1">

В этом случае ссылка <http://www.youtube.com/v/ZC7ZOGpM2cU?version=3&amp;autohide=1> отобразит ее в полноэкранном режиме.

1 голос
/ 10 января 2012

ОК, попробуйте следующий код. Это будет работать.

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("http://www.youtube.com/v/wwI2w2YHkCQ?fs=1"));
startActivity(i);
1 голос
/ 10 января 2012

На самом деле, для воспроизведения любого потокового видео я использую

startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.youtube.com/v/wwI2w2YHkCQ?fs=1")));

Но я не думаю, что это сработает для вашей ссылки. Лучше попробовать

mediaplayer.setdataSource("your link").
0 голосов
/ 04 января 2012
private VideoView mVideoView;

@Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        setContentView(R.layout.main);
        mVideoView = (VideoView) findViewById(R.id.surface_view);
    }

    private void playVideo() {
        try {
            final String path = "http://www.youtube.com/v/wwI2w2YHkCQ?fs=1"

            System.out.println("path  "+path);
            Log.v(TAG, "path: " + path);
            if (path == null || path.length() == 0) {
                Toast.makeText(VideoViewDemo.this, "File URL/path is empty",
                        Toast.LENGTH_LONG).show();
            }
            else {
                System.out.println("else  ");
                // If the path has not changed, just start the media player
                if (path.equals(current) && mVideoView != null) {
                    System.out.println("mVideoView.start()  ");

                    mVideoView.start();
                    mVideoView.requestFocus();
                    return;
                }
                current = path;
                //mVideoView.setVideoPath(getDataSource(path));
                mVideoView.setVideoURI(Uri.parse(path));
                mVideoView.start();
                mVideoView.requestFocus();
            }
        }
        catch (Exception e) {
            Log.e(TAG, "error: " + e.getMessage(), e);
            if (mVideoView != null) {
                mVideoView.stopPlayback();
            }
        }
    }

main.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"
>
    <EditText android:id="@+id/path"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
            />

    <LinearLayout android:orientation="horizontal"
                  android:layout_height="wrap_content"
                  android:layout_width="fill_parent"
    >
        <ImageButton android:id="@+id/play"
                     android:layout_height="wrap_content"
                     android:layout_width="wrap_content"
                     android:src="@drawable/play"/>

        <ImageButton android:id="@+id/pause"
                     android:layout_height="wrap_content"
                     android:layout_width="wrap_content"
                     android:src="@drawable/pause"/>
        <ImageButton android:id="@+id/reset"
                     android:layout_height="wrap_content"
                     android:layout_width="wrap_content"
                     android:src="@drawable/reset"/>
        <ImageButton android:id="@+id/stop"
                     android:layout_height="wrap_content"
                     android:layout_width="wrap_content"
                     android:src="@drawable/stop"/>
    </LinearLayout>

    <VideoView android:id="@+id/surface_view"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent">
    </VideoView>
</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...