尝试从原始文件夹(VideoView)播放视频

Posted

技术标签:

【中文标题】尝试从原始文件夹(VideoView)播放视频【英文标题】:Trying to play video from raw folder (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");

有什么建议吗?

【问题讨论】:

好的...我找到了我之前使用不同视频的代码,但现在无法正常工作。 mPath = Uri.parse("android:resource://com.example.wordweather/" + R.raw.scott); How to play videos in android from assets folder or raw folder?的可能重复 【参考方案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);
             

        

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

【讨论】:

以上是关于尝试从原始文件夹(VideoView)播放视频的主要内容,如果未能解决你的问题,请参考以下文章

Android:视频未从原始文件夹播放

如何从资产文件夹加载视频? (用 VideoView 播放它们)

VideoView-播放 swf 文件

无法从 openload 播放此视频 VideoView

无法在android的videoview中播放来自url的视频如何在videoview中播放来自URL的视频?

“无法播放此视频”错误使用带有 VideoView 和 Mediacontroller 的 URL