6

AndroidアプリケーションでSDカードからビデオを再生するのに非常に苦労しています。サイズ、ビットレート、ビデオ形式、またはその他の考えられる設定は関係ありません。エミュレーターもG1も、エンコードしようとしているものを再生しません。また、Webからいくつかのビデオ(さまざまなビデオ形式、ビットレート、オーディオトラックの有無など)を試しましたが、どれも機能しません。

私が取得し続けるのは、次のようなダイアログボックスだけです。

「ビデオを再生できません」

"申し訳ありません。このビデオは再生できません。"

LogCatでエラーが報告されていますが、私にはわかりません。インターネットで詳細な説明を検索してみましたが、うまくいきませんでした。下記参照:

03-30 05:34:26.807: ERROR/QCOmxcore(51): OMXCORE API :  Free Handle 390d4
03-30 05:34:26.817: ERROR/QCOmxcore(51):  Unloading the dynamic library for OMX.qcom.video.decoder.avc
03-30 05:34:26.817: ERROR/PlayerDriver(51): Command PLAYER_PREPARE completed with an error or info PVMFErrNoResources
03-30 05:34:26.857: ERROR/MediaPlayer(14744): error (1, -15)03-30 05:34:26.867: ERROR/MediaPlayer(14744): Error (1,-15)

時々私もこれを手に入れます:

03-30 05:49:49.267: ERROR/PlayerDriver(51): Command PLAYER_INIT completed with an error or info PVMFErrResource
03-30 05:49:49.267: ERROR/MediaPlayer(19049): error (1, -17)
03-30 05:49:49.347: ERROR/MediaPlayer(19049): Error (1,-17)

これが私が(私のonCreate()メソッドで)使用しているコードです:

this.setContentView(R.layout.main);
//just a simple VideoView loading files from the SD card
VideoView myIntroView = (VideoView) this.findViewById(R.id.VideoView01);
MediaController mc = new MediaController(this);
myIntroView.setMediaController(mc);
myIntroView.setVideoPath("/sdcard/test.mp4");
myIntroView.requestFocus();
myIntroView.start();

助けてください!

4

3 に答える 3

10

さて、ここに行きます。私がAdobePremiereで作業しているビデオは、480x800(WxH)であるはずですが、Adobe Media Encoderに、「UYVY」ビデオコーデック、24 fpsフレームレート、プログレッシブを使用して、シーケンスを「非圧縮MicrosoftAVI」として出力させます。 、正方形のピクセル、および寸法:720x800(WxH)。これにより、ビデオコンテンツの両側に120pxの黒い境界線があるかなり大きなファイルが出力されます。次に、ビデオをHandbrake 0.9.4に取り込み、次の設定を使用します([通常]-> [通常]プリセットから開始しました)。

Container: MP4 File
Large file size: [un-Checked]
Web-optimized: [un-Checked]
iPod 5G support: [un-Checked]

Width: 320 (this is key, any higher than 320 and it won’t work)
Height: 528
Keep Aspect Ratio: [Checked]
Anamorphic: None

Crop Left: 120
Crop Right: 120

Everything under the "Video Filter" tab set to "Off"

Video Codec: H.264(x264)
Framerate: same as source
2-Pass Encoding: [Checked]
Turbo first pass: [un-Checked]
Avg Bitrate: 384

Create chapter markers: [un-Checked]

Reference Frames: 2
Mixed References: [un-Checked]
B-Frames: 0
Motion Estimation Method: Uneven Multi-Hexagon
Sub-pixel Motion Estimation: 9
Motion Estimation Range: 16
Analysis: Default
8x8 DCT: [un-Checked]
CABAC Entropy Coding: [un-Checked]
No Fast-P-Skip: [un-Checked]
No DCT-Decimate: [un-Checked]
Deblocking: Default, Default
Psychovisual Rate Distortion: [MAX]

私の主な問題は、480x800(WxH)のサイズのmp4ファイルを出力しようとしていたことでした。幅を320に変更した後(高い値は機能しませんでした)、適切なアスペクト比を維持した後、出力ビデオはエラーなしで再生されるようになりました。これが同様の問題を抱えている他の誰かに役立つことを願っています。

補足:Androidビデオの制限がより適切に文書化されていることを望みます。

于 2010-03-30T23:17:22.820 に答える
3

私は自分の携帯電話(HTCヒーロー)で多くの異なるビデオを再生するのにかなりの問題を抱えています。標準の512Kmp4の再生(例:http ://www.archive.org/details/more_animation )、最初にそれらをチェックして、それがコードではないことを確認します。

ビデオファイルのみを再生するサブアクティビティのonCreate()からの私のコードは次のとおりです。




    protected VideoView mine;
    protected boolean done = false;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.videoshow);  
        mine = (VideoView) findViewById(R.id.video);   // Save the VideoView for touch event processing 
        try {
            String myURI = "/sdcard/" + path + "/v/" 
                          + currentItem.getFile() 
                          + "." + currentItem.getFileType();
            Uri video = Uri.parse(myURI); 
            mine.setVideoURI(video);
            mine.start();
            mine.setOnCompletionListener(new OnCompletionListener() {

                public void onCompletion(MediaPlayer mp) {  
                    result.putExtra("com.ejf.convincer01.Finished", true);
                    done = true;
                }
            });
        } catch (Exception ex) {
            Log.d(DEBUG_TAG, "Video failed: '" + ex + "'" );
        }
于 2010-03-30T16:01:22.237 に答える
0

問題が私のビデオのディレクトリにあることがわかるまで、私はこの問題に直面していました。ビデオビューに到達できないディレクトリにビデオを保存していました。そのため、ビデオを再生しようとするたびに、「ビデオを開けません」などのエラーメッセージが表示されます。ビデオをこのディレクトリに保存してみてください。このディレクトリは電話ギャラリーにも表示されます。

String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/" + "your app name ";
于 2014-10-06T13:22:18.307 に答える