0

フラグメントでは、ビデオビューがあり、記録された聖霊降臨祭のエミュレーターカメラ.mp4ビデオを再生します。すべてが正常で、エミュレーターではビデオが再生されていますが、実際のデバイスで別のビデオを再生しようとすると、カメラを.mp4形式で再度録画すると、画面が真っ暗になり、悲しい「BitmapFactoryクラス。ソースが見つかりません」と表示されます。私は4.0.4デバイスでテストしており、ターゲットは8〜17apiです。画像はエミュレーターと実際のデバイスで正常に開きます。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" />

4

1 に答える 1

0

奇妙なことに、4.1のエミュレーターでは、ビデオを断片的に再生しますが、実際の4.0デバイスでは、ビデオを再生するにはアクティビティでホストする必要があります。このように、ビデオはエミュレーターと実際のデバイスで再生されます。理由はわかりませんが、このように機能します。

于 2012-12-24T19:44:36.620 に答える