1

So I created a directory on the internal storage like so:

File mediadir = getDir("tvr", Context.MODE_PRIVATE);

Then I download files from a server and save them inside the directory like this:

URL url = new URL(urlString);
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
InputStream is = url.openStream();
Log.d("DOWNLOAD NAME",name);
FileOutputStream fos = new FileOutputStream(mediadir+name);
etc

Then files are saved successfully, then next I want to play them like this:

String path = filelist[playListIndex].getAbsolutePath();
videoView = (VideoView) findViewById(R.id.videoView);
videoView.setVisibility(View.VISIBLE);
videoView.setOnCompletionListener(this);
videoView.setVideoPath(path);
videoView.start();

where path is :

/data/data/com.mypackage/tvr/video.mp4

The file does not want to play with this error:

02-20 15:57:21.447: E/MediaPlayer(24143): error (1, -2147483648)

And on the device a message pops up : Cannot play video, Sorry this video cannot be player.

Is this a issue with rights or what? If it is, I was thinking because I created them, I have the rights to them?

4

2 に答える 2

0

CommonsWareには、VideoViewの使用方法に関する良い例があります。動画を再生したくないという同様の問題を抱えていた人へのリンクは 次のとおりです。AndroidのVideoViewで動画を再生する

また、VideoViewを組み込む方法を学ぶときに役立つと思った彼の例のビデオクラスもあります: https ://github.com/commonsguy/cw-advandroid/blob/master/Media/Video/src/com/commonsware/android /video/VideoDemo.javaこれがお役に立てば幸いです。

また、マニフェストセットに権限設定があることを確認します。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2013-02-20T14:47:09.777 に答える
0

問題はビデオエンコーディングにある可能性があります。Android FROYOとGingerbreadは、「ベースライン」H264以外のH264形式をサポートしていません。したがって、ビデオがMp4およびH264でエンコードされている場合は、 「AVCベースライン」がエンコードされていることを確認してください。Windows / Linuxの「メディア情報」などのツールを使用して、ビデオエンコーディングを確認します。可能であれば、ビデオをベースラインに変換します。

別の回避策は、Videoviewをスキップし、ビデオ再生インテントを使用して、再生をアプリにリダイレクトすることです。ユーザーは、再生を処理するプレーヤーを選択するように求められます。明らかに、ビデオビューがファイルを再生できない場合、デフォルトのプレーヤーもファイルを処理できません。ファイルを完全にストリーミングするMx-Playerのような他のインストール済みプレーヤーを選択できます。

于 2013-03-19T06:05:03.570 に答える