检查是否可以播放来自互联网的视频资源

时间:2016-08-01 09:05:06

标签: android android-videoview

我尝试使用videoview在互联网上播放视频:

 <tr>
     <td>description</td>
     <td contenteditable='true' (input)="onRowClick($event, 'description', i)">{{ row.description }}</td>
     <td>{{row.description}}</td>  <<==== default value must not change when editing the first one 
        </tr>

我怎么知道视频资源可以播放(处理异常),到目前为止我尝试过:

String path1="http://someserverhere.com
Uri uri=Uri.parse(path1);
VideoView video=(VideoView)findViewById(R.id.VideoView01);
video.setVideoURI(uri);
video.start();

但是这段代码 - 媒体播放器挂了我的屏幕。 有什么建议吗? Tks很多。

3 个答案:

答案 0 :(得分:0)

也许您可以检查文件是否与标题请求一起存在

GestureOverlayView

答案 1 :(得分:0)

您可以使用以下代码检查视频的宽度和高度来检查。

MediaMetadataRetriever mRetriever = new MediaMetadataRetriever();
mRetriever.setDataSource(context, uri);
Bitmap frame = mRetriever.getFrameAtTime();

int width = frame.getWidth();
int height = frame.getHeight();

答案 2 :(得分:0)

从网络完整代码播放视频。

注意:在清单中添加Internet权限。

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

public class MainActivity extends Activity {

    ProgressDialog pDialog;
    VideoView videoview;

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


        String VideoURL = "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4";
        videoview = (VideoView) findViewById(R.id.videoView);

        pDialog = new ProgressDialog(this);
        pDialog.setTitle("Android Video Streaming Demo");
        pDialog.setMessage("Buffering...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(false);
        pDialog.show();

        try {
            // Start the MediaController
            MediaController mediacontroller = new MediaController(this);
            mediacontroller.setAnchorView(videoview);
            // Get the URL from String VideoURL
            Uri video = Uri.parse(VideoURL);
            videoview.setMediaController(mediacontroller);
            videoview.setVideoURI(video);

        } catch (Exception e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }

        videoview.requestFocus();
        videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            // Close the progress bar and play the video
            public void onPrepared(MediaPlayer mp) {
                pDialog.dismiss();
                videoview.start();
            }
        });
    }
}