【问题标题】:Load video in an Activity and display it in another one在一个活动中加载视频并在另一个活动中显示
【发布时间】:2018-06-11 15:47:14
【问题描述】:

这是我用来加载视频的代码:

VideoView videoView = findViewById(R.id.video);

videoView.setVideoURI(Uri.parse(url));

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                mediaPlayer.setLooping(true);
                videoView.start();
                loader.loaded.set(true);
            }
        });

我的应用程序包含一个“正在加载 Activity”,我想在进入下一个 Activity 之前使用它来加载我的视频。

是否可以在 Activity 中加载视频,但在另一个 Activity 中显示?

感谢您提供的任何帮助!

PS:

以防万一有人问,以下行使我能够在 videoView 完全加载之前隐藏它(因为在视频完全加载之前会显示一个黑色的大方块):

loader.loaded.set(true);

【问题讨论】:

    标签: android video android-videoview


    【解决方案1】:

    您不能在活动之间移动views。您应该改用Fragments。在一个片段中加载视频并将其传递给另一个

    【讨论】:

      【解决方案2】:

      您可以在加载活动中加载视频并将其存储在实现 Serializable 的自定义类中。然后,您在进入下一个活动时使用 Intent 对象传递视频数据。

      【讨论】:

      • 你不能序列化视图
      • 您不需要将整个视图移动到另一个活动中,您只需要移动视频(以字节数组或其他形式)并在新活动中拥有视图。
      • 那么,我可以在加载后存储我的视频吗?但具体如何? @DGounaris
      • 进入 onPrepared 后,您可以使用代码 here 将加载的视频存储在 byte[] 中,因为您知道 URI。然后,您可以使用包含该字节 [] 的意图切换到其他活动。然而,现在我想起来,它可能会无缘无故地加倍工作。考虑使用其他评论建议的片段。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多