全屏活动无响应(不同的Android版本?)

时间:2018-08-14 04:17:29

标签: android

这是我在全屏视频上的代码。 在模拟器中可以正常工作,但在真正的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上都适用。

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

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

但是我遇到此错误>>无法播放此视频
根据{{​​3}}资产文件夹无法播放视频

编辑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();}   

0 个答案:

没有答案