0

階層イメージ、マニフェスト、xml、javaを添付しました

内部ストレージに画像とビデオがあります。アプリケーションの 1 つのアクティビティで、画像を表示します。できます。他のアクティビティでは、ビデオを見せます。「申し訳ありませんが、このビデオは再生できません」というメッセージが表示され、次のように返されます。

10-11 12:58:50.889: E/MediaPlayer(23497): Error (1,-2147483648)

ビデオが /mnt/sdcard/.. にあるかのように、許可の問題である可能性があるようです。言われたとおりに動作します。これらのビデオは変更されないため、誰かが /data/data/.... にある内部ストレージに配置することにしました。

画像を参照していた方法が原因である可能性があると思いますが、同じアプリであるため、この問題は呼び出されるべきではありません。/data/data/... からビデオを読み取るために必要な特別なマニフェストフラグまたは何かがありますか?

アプリケーションのレイアウト:

                 -----------------------------------------
                 |            Application                |
                 |           _/         \_               |
                 |   ImageActivity     Video Activity    |
                 -----------------------------------------

マニフェスト:

<supports-screens
    android:anyDensity="true"
    android:xlargeScreens="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true" />

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_LOGS" />

<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.microphone" android:required="true" />
<uses-feature android:name="android.hardware.wifi" android:required="true" />
<application
    android:hardwareAccelerated="true"
    android:debuggable="true"
    android:icon="@drawable/pl_launcher"
    android:label="@string/app_name" >
    <activity
        android:name="com.bentley.cordova.plugins.MediaPlaybackActivity" 
        android:launchMode="standard"
        android:configChanges="orientation"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    </activity>
</application>

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <VideoView
        android:id="@+id/video"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</LinearLayout>

ジャワ:

path = this.getIntent().getStringExtra("path_name"); 
//path looks like:   /data/data/com.XXXXX.viewer/folder/video.mp4
setContentView(R.layout.media_playback_video);
VideoView vv = (VideoView)findViewById(R.id.video);
vv.setMediaController(new MediaController(this));
vv.setVideoURI(Uri.parse(path));
vv.requestFocus();
vv.start();
4

1 に答える 1

0

このビデオのエンコードに使用されたコーデックは非常に重要です。他のビデオで試して、これが問題かどうかを確認してください。デフォルトでは、Android ビデオ ビューはどのタイプのビデオも再生できません。

于 2012-10-11T19:23:39.680 に答える