@Wolfak

Почему не работает VideoView при разработке под android?

Доброе время суток.
Разрабатываю приложение под андроид и столкнулся с необходимостью реализовать воспроизведение видео с сайт (по ссылке на видео файл с размером до 100 мб), но при создании VideoView как в визуальном редакторе, так и программно видео не отображается.

Вот код:
VideoView VideoPlayer = new VideoView(page.this);
VideoPlayer.setVideoURI(Uri.parse("http://mysite.ru/file.mp4"));
VideoPlayer.setVideoPath("http://mysite.ru/file.mp4");
VideoPlayer.setMediaController(new MediaController(page.this));
VideoPlayer.requestFocus(0);
VideoPlayer.start();
PageCont.addView(VideoPlayer);


А этот кусок вообще выделяется как ошибка: (без него тоже не работает)
VideoPlayer.setMediaController(new MediaController(page.this));


В чем может быть проблема? Спасибо.
  • Вопрос задан
  • 1588 просмотров
Решения вопроса 1
Как у вас всё странно!А посмотреть, что у вас за ошибка, не пробовали?

Xml - файл Layout:


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="android.letscoder.xyz.videosolution.MainActivity">

    <VideoView
        android:id="@+id/video_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        />
</RelativeLayout>


Код класса Activity:


package android.letscoder.xyz.videosolution;

import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {

    VideoView mVideoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setupVideoView(mVideoView, "http://techslides.com/demos/sample-videos/small.mp4");
    }

    private void setupVideoView(VideoView videoView, String url) {
        videoView = (VideoView) findViewById(R.id.video_view);
        MediaController controls = new MediaController(this);
        controls.setAnchorView(videoView);
        videoView.setMediaController(controls);
        videoView.setVideoURI(Uri.parse(url));
        videoView.start();
    }

}


Не забудьте прописать permisson в манифесте:


<uses-permission android:name="android.permission.INTERNET"/>


Всё работает:


3d21e3b28408438c958afa60fb1a586e.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы