【问题标题】:Video sent to whatsapp not playing发送到whatsapp的视频没有播放
【发布时间】:2018-12-09 08:52:16
【问题描述】:

在我的应用中有一个功能,用户可以与他们选择的应用分享视频。代码相当简单(其中 mediaPath 是 String 类型的变量,它是指向有效视频的路径):

File media = new File(mediaPath);
Uri uri = FileProvider.getUriForFile(context, getString(R.string.file_provider_authority), media);
Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setType("video/*");
String title = getString(R.string.share_video_title);
Intent chooser = Intent.createChooser(share, title);
if (share.resolveActivity(context.getPackageManager()) != null) {
    startActivity(chooser);
}

分享在 gmail 上完美运行(例如),似乎 在 whatsapp 上也能正常运行。它压缩视频并上传。接收者得到视频并且能够看到缩略图并下载它。但是他们无法播放视频。

【问题讨论】:

    标签: android share whatsapp


    【解决方案1】:

    我终于找到了解决办法

    public void shareVideoWhatsApp() {
    
    
            Uri uri = Uri.fromFile(v);
            Intent videoshare = new Intent(Intent.ACTION_SEND);
            videoshare.setType("*/*");
            videoshare.setPackage("com.whatsapp");
            videoshare.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            videoshare.putExtra(Intent.EXTRA_STREAM,uri);
    
            startActivity(videoshare);
    
        } 
    

    Refrence

    【讨论】:

      【解决方案2】:

      你要试试这个吗:

      String path = ""; //should be local path of downloaded video
      
              ContentValues content = new ContentValues(4);
              content.put(MediaStore.Video.VideoColumns.DATE_ADDED,
                      System.currentTimeMillis() / 1000);
              content.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
              content.put(MediaStore.Video.Media.DATA, path);
      
              ContentResolver resolver = getApplicationContext().getContentResolver();
              Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content);
      
              Intent sharingIntent = new Intent(Intent.ACTION_SEND);
              sharingIntent.setType("video/*");
              sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "Hey this is the video subject");
              sharingIntent.putExtra(Intent.EXTRA_TEXT, "Hey this is the video text");
              sharingIntent.putExtra(Intent.EXTRA_STREAM,uri);
              startActivity(Intent.createChooser(sharingIntent,"Share Video");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-19
        • 1970-01-01
        • 2023-01-15
        相关资源
        最近更新 更多