簡體   English   中英

如何從具有視頻意圖的資產或原始文件夾中播放視頻(.mp4)?

[英]How to play a video (.mp4) from assets or raw folder with the video intent?

如何使用視頻意圖從資產或原始文件夾中播放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文件夾嗎?

AssetFileDescriptor afd;

  try {
         afd = getAssets().openFd("videofile/video.3gp");
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

這里video.3gp是文件夾下的文件--- videofile- >是資產文件夾下的一個文件夾

您可以使用Mediaplayer設置這種方式

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();

您可以使用以下方法從原始文件夾解析視頻網址:

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

然后嘗試:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM