如何解决Android Kotlin - Intent createChooser - 从缓存/内存中共享 VideoView/MediaPlayer 的视频文件
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");
这可能吗?我也会接受替代方案/建议
解决方法
这可能吗?
没有。首先,对于所有类型的流来说,这在物理上是不可能的。除此之外,VideoView
/MediaPlayer
不会将媒体写入磁盘。它们分块下载,以最大限度地减少 RAM 消耗,并将其仅用于播放。
我也会接受替代方案/建议
自行下载视频,例如使用 OkHttp。将下载的副本用于 setVideoPath()
和 ACTION_SEND
(后者最有可能是 FileProvider
)。请注意,这仅适用于作为实际文件的视频流(例如,不适用于某些直播),并且需要先下载整个视频。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。