我正在尝试共享正在创建并存储在外部 SD 卡上的视频,其路径已通过获取。
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getAbsolutePath()
我使用 SEND_INTENT 如下:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
shareIntent.setType("video/mp4");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "My Subject");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,"My Text");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(video_path));
startActivityForResult(Intent.createChooser(shareIntent, "Share Your Video"),SHARE_INTENT);
问题:
当我通过 Gmail 共享时,它会向我显示附有视频的撰写窗口。但是没有显示视频的大小,并且当您发送或取消窗口时,gmail 将因内容解析器上的输入流 NPE 而崩溃。
如果是 YouTube,它说您无法从云服务上传视频,我的视频显然驻留在设备上。
如果是 facebook,它会被默默地丢弃。这与 wassup 配合得很好。 :-)
有什么想法如何让它发挥作用吗?
EDIT:
视频路径:/storage/emulated/0/Movies/MyFolder/my-video_1378253389208.mp4
UPDATE
通过增加file:///
后缀、gmail 和 facebook 工作正常。
YouTube仍在抄袭“视频无法从云服务上传”的说法。