当前位置: 首页 > 知识库问答 >
问题:

从URI播放视频时无法播放此视频错误

凌俊语
2023-03-14

在我的应用程序中,我想显示来自服务器URI路径的视频,在这里,第一次播放视频,当我想第二次播放视频时,视频没有播放,并显示一个弹出窗口,如无法播放此视频

下面是我的错误

 E/MediaPlayer: setDataSource: IOException! uri=https://www.merastories.com/VideoFiles/a81d1e5c-3e23-418a-9ba8-fca601d1a966-VID_20180322_152225.mp4
          java.io.FileNotFoundException: No content provider: https://www.merastories.com/VideoFiles/a81d1e5c-3e23-418a-9ba8-fca601d1a966-VID_20180322_152225.mp4
              at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1123)
              at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:958)
              at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:881)
              at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1018)
              at android.widget.VideoView.openVideo(VideoView.java:437)
              at android.widget.VideoView$7.surfaceCreated(VideoView.java:742)
              at android.view.SurfaceView.updateWindow(SurfaceView.java:676)
              at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:203)
              at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
              at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2417)
              at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1321)
              at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6708)
              at android.view.Choreographer$CallbackRecord.run(Choreographer.java:894)
              at android.view.Choreographer.doCallbacks(Choreographer.java:696)
              at android.view.Choreographer.doFrame(Choreographer.java:631)
              at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:880)
              at android.os.Handler.handleCallback(Handler.java:822)
              at android.os.Handler.dispatchMessage(Handler.java:104)
              at android.os.Looper.loop(Looper.java:207)
              at android.app.ActivityThread.main(ActivityThread.java:5811)
              at java.lang.reflect.Method.invoke(Native Method)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681)

提前谢谢。

共有2个答案

曾德水
2023-03-14

使用ExoPlayer显示来自任意地点的视频“编译'com.google.android.ExoPlayer:ExoPlayer:r2.5.2'”

使用Exoplayer的代码

 if (videoUri != null) {
        shouldAutoPlay = true;
        bandwidthMeter = new DefaultBandwidthMeter();
        mediaDataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, MyApplication.getApplication().getResources().getString(R.string.app_name)), (TransferListener<? super DataSource>) bandwidthMeter);
        window = new Timeline.Window();

        initializePlayer(videoUrl);
    }


  private void initializePlayer(Uri iVideoUri) {

    simpleExoPlayerView = (SimpleExoPlayerView) findViewById(R.id.video_view);
    simpleExoPlayerView.requestFocus();

    TrackSelection.Factory videoTrackSelectionFactory =
            new AdaptiveTrackSelection.Factory(bandwidthMeter);

    trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);

    player = ExoPlayerFactory.newSimpleInstance(this, trackSelector);

    simpleExoPlayerView.setPlayer(player);

    player.setPlayWhenReady(shouldAutoPlay);
    DefaultExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();

    MediaSource mediaSource = new ExtractorMediaSource(iVideoUri,
            mediaDataSourceFactory, extractorsFactory, null, null);

    player.prepare(mediaSource);

}

private void releasePlayer() {
    if (player != null) {
        shouldAutoPlay = player.getPlayWhenReady();
        player.release();
        player = null;
        trackSelector = null;
    }
屠振濂
2023-03-14

试试这个

 String path="https://www.merastories.com/VideoFiles/a81d1e5c-3e23-418a-9ba8-fca601d1a966-VID_20180322_152225.mp4";
Uri uri=Uri.parse(path1);
VideoView videoview=findViewById(R.id.videoview);
video.setVideoURI(uri);
video.start();
 类似资料:
  • 问题内容: 无法播放此视频错误… !! 看到图片 截屏 怎么办?按下播放按钮后,它说不能播放此视频。需要解决这个问题。 问题答案: 您好,前天我遇到了同样的问题,几乎尝试了所有方法,但都没有成功。之后,我使用了这个库,并且运行良好。只需遵循几个步骤: 第1步。 将其添加到您的gradle 第2步。 将其添加为xml布局中的视频播放。 第3步。 从此处检查如何在您的班级中使用此库, 我这边还有另外一

  • 问题内容: 我遵循了一些有关结合JavaFX与Swing(JFrame)来播放视频的教程,但是我得到的只是一个黑屏,该视频应该没有任何实际的内容播放,也没有报错。 我在这里做错什么,为什么不播放视频? 我尝试了几个.flv视频,但都不会开始播放(当我在浏览器中打开它们时,它们会播放) 我在装有K-lite完整编解码器包的Windows 8.1 N Pro上运行jre7和jdk1.7.0_45 编辑

  • 用 AVPlayer 类写的简易视频播放器,可以播放来自互联网的视频,支持手势缩放视频。只能播放iPhone支持的视频格式。 目前有两点不足:一是无法调节音量;二是手势放大缩小之后滑动快进快退也不太正常。希望有其他开发者在此基础上继续改进。 [Code4App.com]

  • 下面是我的代码以及报错信息,不知道是哪里错了,这个url地址我测试过也是可以的,在这里先谢谢各位大哥们的解答,小弟感激不尽!!

  • 是否可以从webview播放youtube视频,就像我从浏览器访问youtube网站时视频开始播放时一样,它在全屏播放视频。 以下是我到目前为止的代码: