web-dev-qa-db-fra.com

Lire la vidéo à partir de l'URL dans VideoView [Android]

J'ai trouvé des questions similaires, mais rien ne fonctionne pour moi ... Je tente de lire la vidéo à partir de cette URL:

http://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4

Mon code Java:

VideoView videoView= (VideoView)findViewById(R.id.exerciseVideo);
    Uri uri = Uri.parse(TEST_URL);
    videoView.setVideoURI(uri);
    videoView.requestFocus();
    videoView.start();

Lorsque je lance l'application, rien ne s'affiche en activité et IDE ne montre aucune erreur. Toute idée, s'il vous plaît?

MODIFIER:

Mon activité où je veux montrer une vidéo:

<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <LinearLayout 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="com.example.martin.fitnessapp.ExerciseDetailActivity"
        Android:orientation="vertical">


        <LinearLayout
            Android:orientation="horizontal"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:weightSum="2">
            <ImageView
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:id="@+id/exerciseImgA"
                Android:layout_weight="1"
                Android:scaleType="fitCenter"
                Android:adjustViewBounds="true"
                Android:paddingRight="8dp"/>

            <ImageView
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:id="@+id/exerciseImgB"
                Android:layout_weight="1"
                Android:scaleType="fitCenter"
                Android:adjustViewBounds="true"
                Android:paddingLeft="8dp"/>
        </LinearLayout>

        <TextView
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:textAppearance="?android:attr/textAppearanceMedium"
            Android:text=""
            Android:id="@+id/exerciseDesc" />

        <VideoView
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:id="@+id/exerciseVideo" />

        <ImageView
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:id="@+id/guideImg"
            Android:scaleType="fitCenter"
            Android:adjustViewBounds="true"/>


    </LinearLayout>
</ScrollView>
5
Aligator

Essayez ce code .. Ce code fonctionne parfaitement pour moi ..

    final VideoView videoView;
    videoView = (VideoView)findViewById(R.id.videoView);
    videoView.setVideoPath("http://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4");
    videoView.start();
13
vishnumm93

Comme je sais que vous ne devriez pas utiliser wrap_content pour VideoView height .VideoView ne s'est pas redimensionné après la mise en cache de la vidéo

1
Alex Karamyshev

Veuillez leur ajouter une permission Internet. Remplacez layout_height wrap_content par match parent . Ceci est un code pour résoudre ce problème 

public class MainActivity extends Activity {
    private ProgressDialog bar;
    private String path="https://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4";
    private MediaController ctlr;
    private VideoView videoView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        setContentView(R.layout.activity_main);
      bar=new ProgressDialog(MainActivity.this);
        bar.setTitle("Connecting server");
        bar.setMessage("Please Wait... ");
        bar.setCancelable(false);
        bar.show();
       if(bar.isShowing()) {
           videoView = findViewById(R.id.v1);
           Uri uri = Uri.parse(path);
           videoView.setVideoURI(uri);
           videoView.start();
           ctlr = new MediaController(this);
           ctlr.setMediaPlayer(videoView);
           videoView.setMediaController(ctlr);
           videoView.requestFocus();
       }
        bar.dismiss();
    }
}
0
Devolper Engg