【问题标题】:Trying to play video from raw folder (VideoView)尝试从原始文件夹(VideoView)播放视频
【发布时间】:2010-08-31 12:54:30
【问题描述】:

我可以通过插入如下 URL 来播放来自 Internet 的视频:

mPath   = Uri.parse("http://commonsware.com/misc/test2.3gp");
mVid.setVideoURI(mPath);
mVid.requestFocus();
mVid.start();

但现在我的原始文件夹中有一个视频,所以路径是 res/raw/testing.3gp。下面的代码不起作用,我也尝试了一些其他的方法都没有成功。

mPath   = Uri.parse("../../res/raw/testing.3gp");

有什么建议吗?

【问题讨论】:

标签: android


【解决方案1】:

我遇到了同样的问题。 这对我有用:

Uri video = Uri.parse("android.resource://com.pac.myapp/raw/master");

如您所见,您有 3 个部分的 uri:1)“android.resource://”2)“com.pac.myapp”3)“/raw/master”

“master”是您的视频名称

【讨论】:

  • 我希望我能将此标记为正确答案。这对我帮助很大!!谢谢。
  • 这对我不起作用.. 我得到了可怕的“此视频无法播放错误”。然而起作用的是 Uri url = Uri.parse("android.resource://com.calvium.myApp/" + R.raw.video); (我的视频资源被称为“video.3gp”。
  • 这个解决方案对我有用。但是,我怀疑它是否可以在任何其他操作系统版本/设备上运行 - 即有很多人报告说“R.raw.*”版本正在运行。谁能详细说明一下 VideoView 有什么期望?
  • 有关此主题的更多信息。 javatech.org/2011/01/…
【解决方案2】:

这对我有用

 String videoName = nameWithoutFileExtention;

 int id = getResources().getIdentifier(videoName, "raw", getActivity().getPackageName());

 final String path = "android.resource://" + getActivity().getPackageName() + "/" + id;

 vvBgVideo.setVideoURI(Uri.parse(path));

【讨论】:

    【解决方案3】:
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button btn=(Button)this.findViewById(R.id.playvideo);
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    VideoView vid=(VideoView)findViewById(R.id.video);
                    vid.setMediaController(new MediaController(MainActivity.this));
                    Uri video = Uri.parse("android.resource://com.example.tenzinthinley.video/raw/ed");
                    vid.setVideoURI(video);
                    vid.requestFocus();
                    vid.start();
                }
            });
        }
    }
    

    如果这不起作用,请更改我的名字。 'ed' 是视频文件名。

    【讨论】:

      【解决方案4】:

      您只需要在资源文件夹下的原始文件夹中找到歌曲。 如果是链接,那么

       private String urlVideo ="http://www.pocketjourney.com/downloads/pj/video/famous.3gp";
      
          //Make uri from song located in raw folder
              Uri uri = Uri.parse("android.resource://" + getPackageName() + "/"
                      + R.raw.shakebooty);
              player.setUpVideoFrom(uri.toString());
      
              public void setUpVideoFrom(String source) throws IllegalArgumentException,
                      IllegalStateException, IOException {
      
                  mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
      
      //Only to check if you want to play song from url
                  if (source.contains("http"))
                  {
                  mPlayer.setDataSource(source);
                  }
      //If want to play song from uri you created from song in raw folder
              else {
                   mPlayer.setDataSource(ctx, source);
                   }
      
              }
      

      享受在表面视图中播放视频的乐趣

      【讨论】:

        猜你喜欢
        • 2018-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-04
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 2019-07-28
        相关资源
        最近更新 更多