2012-08-26 30 views
0

我正在嘗試創建一個應用程序,用戶可以在其中播放應用程序內視頻(已包裝在應用程序中的視頻)。否SDCard或正在進行在線流式傳輸。Android - 不能播放這個視頻!這是怎麼回事?

但無論我使用什麼策略,我都無法在我的應用中運行簡單的.mp4視頻。 我試過將視頻放在assests文件夾中,但沒有運氣。 我試過把視頻放在res/raw文件夾裏,再次沒有運氣。

每當我運行應用程序它說 - 無法播放此視頻。

早些時候,我曾經只是VideoView運行視頻,現在,我使用MediaControllerVideoView錯誤消息不斷到來

請幫助,因爲它是困擾相當長的一段時間,不管我用什麼樣的解決方案一起的時候,我仍然無法運行簡單的視頻。

我的活動代碼:

public class MainActivity extends Activity { 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      MediaController mediac; 
      VideoView video1; 
      mediac = new MediaController(this);   
      video1 = (VideoView) findViewById(R.id.vv01); 
      video1.setMediaController(mediac); 
      mediac.setAnchorView(video1); 

      video1.setVideoURI(Uri.parse("android.resource://com.example.test/raw/aa")); 
video1.start(); 

     } 

我的XML文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 


    <VideoView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/vv01" 
     android:contentDescription="@string/app_name" 
     /> 

</LinearLayout> 

日誌貓,當我嘗試運行應用程序:

08-26 13:27:31.023: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:31.593: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:31.643: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:31.913: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:31.923: D/dalvikvm(624): GC_CONCURRENT freed 147K, 3% free 9345K/9607K, paused 7ms+7ms 
08-26 13:27:32.053: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:32.083: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:32.533: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:32.564: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:33.033: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:33.063: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:33.613: D/MediaPlayer(624): getMetadata 
08-26 13:27:33.973: E/MediaPlayer(624): error (1, -2147483648) 
08-26 13:27:34.093: E/MediaPlayer(624): Error (1,-2147483648) 
08-26 13:27:34.093: D/VideoView(624): Error: 1,-2147483648 
+0

確保您添加Internet權限,當你嘗試用你的視頻查看到流呢。你可以看看logcat錯誤日誌並粘貼在這裏嗎?當您收到「此視頻無法播放」消息時,應該會顯示錯誤信息。 – Infinity

回答

0

你要在外面聲明VideoView onStart(也是媒體控制器)。

如果不行使用的try/catch每個命令和Log.e

+0

嗨,彼得,我按照你的建議做了,但沒有運氣。 Quynh和Peter,我附上日誌貓供你參考。 – Harry

+0

http://developer.android.com/reference/android/widget/VideoView.html 我認爲你必須有一些像OnCompletionListener等功能。你還試過讓它異步? – MayTheSchwartzBeWithYou

+0

不,沒有OnCompletionListener函數或代碼中的任何內容。此外,我沒有嘗試使它異步。它真的有必要嗎?當我試圖使用視頻視圖搜索運行視頻文件的代碼時,我只能獲得上述代碼或類似於上述代碼。沒有同步/異步。彼得 - 你能否運行上面的代碼,看看發生了什麼問題? – Harry