VideoView只在真实设备上出错

时间:2012-12-16 23:02:44

标签: android android-videoview

在片段中我有视频观看并播放录制的白色模拟器相机.mp4视频。一切都很好,在模拟器中视频正在播放,但在真实设备上,当我尝试播放另一个视频时,再次以.mp4格式录制我的相机屏幕变黑并且蚀掉了悲伤的“BitmapFactory类。来源未找到”。我正在测试4.0.4设备,目标是从8到17 api。图像在模拟器和真实设备上正常打开。没有LOGcat错误,都是绿色......

片段代码

public class PreviewFragment extends Fragment {
View view;
//variable
File file;
boolean image;
//views
VideoView videView;
ImageView imageView;
ImageButton imageButton;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if(container == null) {
        return null;
    }
    view = inflater.inflate(R.layout.fragment_preview, container, false);
    //elements
    imageView = (ImageView) view.findViewById(R.id.imageView1);
    videView = (VideoView) view.findViewById(R.id.videoView1);
    //variables from activity
    file = ((PreviewActivity)getActivity()).file;
    image = ((PreviewActivity)getActivity()).image;


    //main run
    if(image == true) {
        imageView.setImageURI(Uri.parse(file.getAbsolutePath()));
    }
    else {
        videView.setVideoURI(Uri.parse(file.getAbsolutePath()));
        videView.setMediaController(new MediaController(getActivity()));
        videView.requestFocus();
        videView.start();
    }

    return view;
}
}

和xml代码

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black" >

<VideoView
    android:id="@+id/videoView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:contentDescription="@string/text_fullscreen" />

1 个答案:

答案 0 :(得分:0)

奇怪但是,在4.1中的模拟器中,如果我在片段中播放视频播放,但在真实的4.0设备上,视频必须是活动中的主机才能播放,这样视频就会在模拟器和真实设备中播放。不知道为什么,但它以这种方式工作。