Android Kotlin - Intent createChooser - 从缓存/内存中共享 VideoView / MediaPlayer 的视频文件

Android Kotlin - Intent createChooser - share the video file of VideoView / MediaPlayer from cache / memory

var medPlay: MediaPlayer
holder.vidPlayer.setVideoPath(fileUrl)
holder.vidPlayer.setOnPreparedListener { mp ->
    medPlay = mp
}

与其再次单独下载视频进行分享,不如分享已经加载到 VideoView / MediaPlayer 中的文件,然后:

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("video/*");
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Hey this is the video text");
sharingIntent.putExtra(Intent.EXTRA_STREAM,uriFromVideoView);
startActivity(Intent.createChooser(sharingIntent,"Share Video");

这可能吗?我也会接受替代方案/建议

Is that possible?

没有。对于初学者来说,并非所有类型的流在物理上都是可行的。除此之外,VideoView/MediaPlayer 不会将媒体写入磁盘。它们分块下载,以最大限度地减少 RAM 消耗,并将其仅用于播放。

I would also accept alternatives / suggestions

自己下载视频,例如使用 OkHttp。将下载的副本同时用于 setVideoPath()ACTION_SEND(后者很可能通过 FileProvider)。请注意,这仅适用于作为实际文件的视频流(例如,不是一些直播),并且需要先下载整个视频。