【问题标题】:How to play a video (.mp4) from assets or raw folder with the video intent?如何使用视频意图从资产或原始文件夹播放视频(.mp4)?
【发布时间】:2012-06-26 17:25:26
【问题描述】:

如何从我的资产或原始文件夹中播放带有视频意图的 mp4 视频?

无论我尝试什么,我总能得到:

06-25 14:32:14.070: E/AndroidRuntime(3070): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://mypackage/raw/myvideo }

我试过了:

   Intent tostart = new Intent(Intent.ACTION_VIEW);

  String movieUrl = "file:///android_asset/myvideo.mp4";
  // String movieUrl = "android.resource://" + getPackageName() + "/raw/" + "myvideo.mp4";

   tostart.setDataAndType(Uri.parse(movieUrl), "video/*");
   startActivity(tostart);  

我只能在人们使用 SD 卡中的视频的地方找到答案,有什么选项可以让我使用 raw 或 assets 文件夹吗?

【问题讨论】:

    标签: android file video android-intent mp4


    【解决方案1】:
    AssetFileDescriptor afd;
    
      try {
             afd = getAssets().openFd("videofile/video.3gp");
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    

    这里 video.3gp 是文件夹下的文件 --- videofile -> 是 assets 文件夹下的一个文件夹

    使用媒体播放器可以这样设置

    mediaPlayer = new MediaPlayer();
    
    
     if(mediaPlayer.isPlaying()){
       mediaPlayer.reset();
      }
    
      mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
      mediaPlayer.setDisplay(surfaceHolder);
    
      try {
          mediaPlayer.setDataSource(afd.getFileDescriptor(), afd
                    .getStartOffset(), afd.getLength());
    
       mediaPlayer.prepare();
      } catch (IllegalArgumentException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IllegalStateException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
    
      mediaPlayer.start();
    

    【讨论】:

    • 有什么使用MediaPLayer的例子吗?
    【解决方案2】:

    您可以使用以下方法从原始文件夹中解析视频网址:

    Uri.parse("android.resource://com.testvideo/" + R.raw.video);
    

    然后试试:

    【讨论】:

    • @Luizje 有用吗?我有同样的问题。我正在测试 LG G Pro android.content.ActivityNotFoundException: No Activity found to handle Intent
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2018-04-27
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多