2014-01-21 65 views
5

我有一個listview.ListView中的每個listitem包含一個surfaceview,一個imageview和按鈕。最初,Surfaceview的可見性將消失。只有imageview和按鈕是可見的。在列表視圖中使用surfaceview來播放視頻

  1. 一旦在imageview的或surfaceview可見的媒體播放器被初始化,它就會開始播放視頻的surfaceview此按鈕,用戶水龍頭。 當用戶上下滾動時,surfaceview的可見性再次發生變化(消失)。一次只有一個surfaceview變爲可見。

  2. 當用戶觸摸任何列表項的它會檢查任何其他媒體播放器是否已經存在,如果它存在,將被釋放,新的媒體播放器與surfaceview的新實例初始化。

這工作正常。但問題是,發佈已經存在的媒體播放器和初始化新媒體播放器需要時間(主要在mediaplayer.prepareasyn()和mediaplayer.start())方法之間。 如果點擊listitem並慢慢刪除我的手它工作正常...否則,如果它是非常快速地點擊它不播放視頻只有surfaceview是可見的。

當前解決方案

我試過在這兩種方法之間應用postdelay,它工作正常。我想知道這是否是這樣做的有效方式。或者有什麼其他的方式可以讓我更快地做出反應。

+0

你可以分享示例代碼或關於如何在ListView中播放視頻的示例項目嗎? – keybee

+0

@keybee如果你的應用程序是4.1及以上,你可以紋理視圖沒有任何問題 –

+0

嘿@PreethiRao你解決了這個問題嗎?你能分享一些相同的代碼嗎? –

回答

0

我認爲你應該做的是使用Handler並使用postDelayed方法來延遲操作,同時使用ProgressDialog來顯示你正在加載下一個視頻的用戶。

希望這就是幫助。

+0

這就是我目前做的..我想知道是否有任何其他有效的方式來做到這一點,而不使用延遲方法。 –

+0

你甚至可以在用戶點擊之前嘗試在後臺準備其他視頻。 –