user1836363
user1836363

Reputation: 295

[Java]Android Videoview works only with local files

I tried to play a video from a url, but only local videos works in my code. If I try to open a video from a url my nexus 7 displays Can not play this video. Here is the code for the playback of a local file, it works fine (both are the same videos)

package com.sample.prog;

import java.io.File;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.widget.VideoView;
import android.net.Uri;

public class MainActivity extends Activity {

    static private final String pathToFile = "bigbuck.mp4";
    private VideoView videoPlayer;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        File root = Environment.getExternalStorageDirectory(); 

        videoPlayer = (VideoView) findViewById(R.id.videoPlayer);   
        videoPlayer.setKeepScreenOn(true);    
        videoPlayer.setVideoPath(root + "/" + pathToFile);
        videoPlayer.start();
    }
}

and here is the code for the playback of video from a url, but it don't work

package com.sample.prog;

import java.io.File;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.widget.VideoView;
import android.net.Uri;

public class MainActivity extends Activity {

    static private final String pathToFile = "http://www.myanimesource.de/bigbuck.mp4";
    private VideoView videoPlayer;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //File root = Environment.getExternalStorageDirectory(); 

        videoPlayer = (VideoView) findViewById(R.id.videoPlayer);   
        videoPlayer.setKeepScreenOn(true);    
        videoPlayer.setVideoPath(URI.parse(pathToFile));
        videoPlayer.start();
    }
}

hope you can help me to solve my problem,

regards christian

Upvotes: 3

Views: 1837

Answers (1)

Reinier
Reinier

Reputation: 3876

Make sure you have the correct permissions for internet access; put the following lines in your AndroidManifest.xml:

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

Upvotes: 5

Related Questions