首页 > 解决方案 > 全屏活动无响应(不同的android版本?)

问题描述

这是我的全屏视频代码。它在模拟器中工作得很好,但在真正的安卓手机中却不行。

public void videoClick(View view){
    Intent mIntent = new Intent(getBaseContext(),VideoFullscreenActivity.class);
    videoUri = Uri.parse("android.resource://tk.myessentialoils.ideasapp/raw/"+ contentStringList[count][2]);
    mIntent.putExtra("videoUri",videoUri);
    startActivity(mIntent);
}  

我的想法是Uri问题。
小米 android 的 uri 与其他的不同。
一些华为手机也不能正常工作。

那么有没有其他方法可以获取文件呢?
也许可以解决所有版本的android。


根据 Vivek Mishra 的建议编辑 1 ,
尝试以下操作

Intent mIntent = new Intent(getBaseContext(),VideoFullscreenActivity.class);
    String path = "file:///android_asset/"+ contentStringList[count][2];
    videoUri = Uri.parse(path);
    mIntent.putExtra("videoUri",videoUri);
    startActivity(mIntent);  

但是我收到此错误>>无法
按照如何从资产文件夹加载视频?(使用 VideoView 播放)资产文件夹无法播放视频

编辑 2 个与 Nullpointerexception 相同的问题,我无法让媒体播放器使用我的代码。

Uri videoUri = getIntent().getParcelableExtra("videoUri");

    VideoView videoView=findViewById(R.id.myvideoview);
    videoView.setVideoURI(videoUri);

    //videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.full));
    MediaController mediaController = new MediaController(this);
    videoView.setMediaController(mediaController);
    videoView.start();
    videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            mp.setLooping(true);
        }
    });

我如何在上面的代码中实现下面的代码。

AssetFileDescriptor afd;
try {
afd = getAssets().openFd("v.mp4");        
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), 
afd.getLength());
player.prepareAsync();
player.setOnPreparedListener(new OnPreparedListener() {

 @Override
 public void onPrepared(MediaPlayer mp) {
    mp.start();
 }
 });

} catch (Exception e) { e.printStackTrace();}   

标签: android

解决方案


推荐阅读