[Java] Android Videoview仅适用于本地文件

use*_*363 3 java android android-videoview

我尝试从网址播放视频,但只有本地视频才能在我的代码中播放.如果我尝试从网址打开视频,我的nexus 7显示无法播放此视频.这是播放本地文件的代码,它工作正常(两者都是相同的视频)

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是从网址播放视频的代码,但它不起作用

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

希望你能帮助我解决我的问题,

问候基督徒

Rei*_*ier 5

确保您拥有正确的互联网访问权限; 将以下行放在AndroidManifest.xml中:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)