2014-06-12 82 views
3

我正在在我能夠發揮利用使用videoview如何運行mkv,flv,avi格式的視頻文件?

vv = (VideoView) findViewById(R.id.videoView); 
vv.setVideoPath(filename); 
vv.setMediaController(new MediaController(this)); 
vv.requestFocus(); 
vv.start(); 

我想這播放MKV,FLV這種簡單的代碼的視頻文件,這些文件的3GP AMD MP4格式的一個項目,AVI格式也文件。我確實在尋找這個,我得到了有關選民的選項。我也嘗試過。我下載了vitamio的demoproject,並在這個demoproject中導入了它的庫,例如InitActivity,並且我試圖在其中播放簡單的mp4文件,但那也不能播放。 所以任何人都可以提出我必須做什麼,以便我能夠播放所有視頻格式?使用Vitamio

更新1:

import io.vov.vitamio.LibsChecker; 
import io.vov.vitamio.MediaPlayer; 
import io.vov.vitamio.widget.MediaController; 
import io.vov.vitamio.widget.VideoView; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 


public class ViewVideo extends Activity { 
     private String filename; 
     VideoView vv; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      System.gc(); 
      if (!LibsChecker.checkVitamioLibs(this)) 
       return; 
      Intent i = getIntent(); 
      Bundle extras = i.getExtras(); 
      filename = extras.getString("videofilename"); 
      // vv = new VideoView(getApplicationContext()); 
      setContentView(R.layout.activity_view); 
      vv = (VideoView) findViewById(R.id.videoView); 
      vv.setVideoPath(filename); 
      vv.setMediaController(new MediaController(this)); 
      vv.requestFocus(); 
      vv.start(); 
     } 
} 

,因爲我用

if (!LibsChecker.checkVitamioLibs(this)) 
        return; 

的logcat的我有...

06-12 13:35:53.952: E/AndroidRuntime(8078): FATAL EXCEPTION: main 
06-12 13:35:53.952: E/AndroidRuntime(8078): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.videoplayer/com.example.videoplayer.ViewVideo}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.videoplayer/io.vov.vitamio.activity.InitActivity}; have you declared this activity in your AndroidManifest.xml? 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.ActivityThread.access$1500(ActivityThread.java:121) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.os.Looper.loop(Looper.java:130) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.ActivityThread.main(ActivityThread.java:3701) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at java.lang.reflect.Method.invoke(Method.java:507) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at dalvik.system.NativeStart.main(Native Method) 
06-12 13:35:53.952: E/AndroidRuntime(8078): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.videoplayer/io.vov.vitamio.activity.InitActivity}; have you declared this activity in your AndroidManifest.xml? 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.Activity.startActivityForResult(Activity.java:2827) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.Activity.startActivity(Activity.java:2933) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at io.vov.vitamio.LibsChecker.checkVitamioLibs(LibsChecker.java:47) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at com.example.videoplayer.ViewVideo.onCreate(ViewVideo.java:19) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623) 
06-12 13:35:53.952: E/AndroidRuntime(8078):  ... 11 more 
+0

你在AndroidManifest.xml中聲明瞭這個活動嗎?我看到這個錯誤。在你的日誌裏。 –

+0

在AndroidManifest.xml中添加ViewVideo活動應該沒問題。 –

+0

@AhmedNawaz如果我不使用這個if(!LibsChecker.checkVitamioLibs(this)) return;其運行良好 –

回答

3

您可以使用Vitamio庫播放這些格式。這裏是。 https://github.com/yixia/VitamioBundle

視頻播放代碼相同。只需導入這些並使用Vitamio VideoView。

import io.vov.vitamio.MediaPlayer; 
import io.vov.vitamio.widget.MediaController; 
import io.vov.vitamio.widget.VideoView; 

檢查onCreateView中的庫,如下所示。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (!io.vov.vitamio.LibsChecker.checkVitamioLibs(this)) 
     return; 
    setContentView(R.layout.layout); 

的playVideo像下面

mVideoView.setVideoPath(path); 
mVideoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH); 
mController = new MediaController(this); 
mVideoView.setMediaController(mController); 

及以下應該是你videoview。

<io.vov.vitamio.widget.VideoView 
android:id="@+id/surface_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" /> 

更新:在審覈後您的項目中找到以下錯誤。

1)如上所述,使用io.vov.vitamio.widget.VideoView而不是VideoView

<io.vov.vitamio.widget.VideoView 
     android:id="@+id/videoView" 
      android:layout_width="fill_parent" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentBottom="true" 
      android:layout_height="fill_parent"/> 

2)限定InitActivity拆裝AndroidManifest.xml以下是代碼。

<activity 
android:name="io.vov.vitamio.activity.InitActivity" 
       android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation" 
android:launchMode="singleTop" 
android:theme="@android:style/Theme.NoTitleBar" 
android:windowSoftInputMode="stateAlwaysHidden"/> 

3)缺少Permissions添加他們在你AndroidManifest.xml例如讀/寫等

+0

你是說InitActivity,我必須在屬性中添加,我使用Vitamio lib InitActivity和我使用的代碼是,我上面更新。請檢查@Ahmed Nawaz –

+0

@DevilAbhi我發現你的問題,並更新了我的答案。 –

+0

仍然不能正常工作:-( –

相關問題