簡體   English   中英

如何在 VideoView 上捕獲“抱歉,此視頻無法播放”錯誤

[英]How to catch “Sorry, This video cannot be played” error on VideoView

我有一個 VideoView,我正在從遠程服務器流式傳輸視頻。 大多數時候它會非常流暢地播放視頻。 但有時,它會顯示一條錯誤消息“抱歉,此視頻無法播放”。 我有預感,這更多的是支持的視頻格式。 但是,我不知道哪些是支持的格式。 我的問題是“我怎樣才能捕捉到這個錯誤(例如防止出現錯誤消息)”? 我在這個項目上使用 Android 2.2。 任何建議將不勝感激。 :)

嘗試使用setOnErrorListener :文檔說如果沒有指定偵聽器,或者如果偵聽器返回 false,VideoView 將通知用戶任何錯誤。 ,所以我假設如果你設置一個並返回 true 它不會顯示用戶錯誤。

我用於此的代碼:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    vView = (VideoView) findViewById(R.id.videoView1);

    vSource = "android.resource://com.domain.android/"
            + R.raw.introductionportrait;
    vView.setVideoURI(Uri.parse(vSource));

    vView.setOnErrorListener(mOnErrorListener);
    vView.requestFocus();
    vView.start();
}

private OnErrorListener mOnErrorListener = new OnErrorListener() {

    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        // Your code goes here
        return true;
    }
};

我更喜歡在 onCreate 方法中設置這樣的監聽器。 希望能幫助別人

videoView.setOnErrorListener(new OnErrorListener () {
    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.e(TAG, "Error playing video");
        return true;
    }
});

您可以添加如下代碼,如果發生任何錯誤,它將關閉視頻查看屏幕。 此外,它不會顯示說視頻無法播放的默認彈出窗口:)

 videoview.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
                finish();
                return true;
            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM