第二篇、vlc-android之源码介绍

来源:互联网 发布:2016中国家庭资产 知乎 编辑:程序博客网 时间:2024/05/16 12:41

注明

转载请注明出处:http://blog.csdn.net/cuiran/article/details/35987853

正文

第一篇、vlc-android之开篇介绍

http://blog.csdn.net/cuiran/article/details/30054835

本篇介绍一下vlc-android的源码

如图所示,libvlc是对应vlc jni的class
自己可以写个简单的Activity
/** * DemoActivity.java * Copyright(C) 2014 * creator:cuiran 2014-6-11 下午3:34:58 */package org.videolan.vlc.gui;import java.util.Arrays;import java.util.HashMap;import java.util.List;import org.videolan.libvlc.LibVlcException;import org.videolan.libvlc.LibVlcUtil;import org.videolan.vlc.AudioServiceController;import org.videolan.vlc.Util;import org.videolan.vlc.gui.audio.AudioPlayer;import org.videolan.vlc.gui.video.VideoPlayerActivity;import org.videolan.vlc.widget.SlidingPaneLayout;import com.actionbarsherlock.app.ActionBar;import com.slidingmenu.lib.SlidingMenu;import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.content.pm.PackageInfo;import android.content.pm.PackageManager.NameNotFoundException;import android.os.Bundle;import android.os.Handler;import android.preference.PreferenceManager;import android.support.v4.app.Fragment;import android.util.Log;import android.view.View;import android.widget.ProgressBar;import android.widget.TextView;/** * TODO  * @author cuiran * @version 1.0.0 */public class DemoActivity extends Activity {public final static String TAG = "VLC/DemoActivity"; protected static final String ACTION_SHOW_PROGRESSBAR = "org.videolan.vlc.gui.ShowProgressBar";    protected static final String ACTION_HIDE_PROGRESSBAR = "org.videolan.vlc.gui.HideProgressBar";    protected static final String ACTION_SHOW_TEXTINFO = "org.videolan.vlc.gui.ShowTextInfo";    public static final String ACTION_SHOW_PLAYER = "org.videolan.vlc.gui.ShowPlayer";    private static final String PREF_SHOW_INFO = "show_info";    private static final String PREF_FIRST_RUN = "first_run";    private static final int ACTIVITY_RESULT_PREFERENCES = 1;    private static final int ACTIVITY_SHOW_INFOLAYOUT = 2;    private ActionBar mActionBar;    private SlidingMenu mMenu;    private SidebarAdapter mSidebarAdapter;    private AudioPlayer mAudioPlayer;    private AudioServiceController mAudioController;    private SlidingPaneLayout mSlidingPane;    private View mInfoLayout;    private ProgressBar mInfoProgress;    private TextView mInfoText;    private View mAudioPlayerFilling;    private String mCurrentFragment;    private String mPreviousFragment;    private List<String> secondaryFragments = Arrays.asList("albumsSongs", "equalizer",                                                            "about", "search", "mediaInfo",                                                            "videoGroupList");    private HashMap<String, Fragment> mSecondaryFragments = new HashMap<String, Fragment>();    private SharedPreferences mSettings;    private int mVersionNumber = -1;    private boolean mFirstRun = false;    private boolean mScanNeeded = true; @Overridepublic void onCreate(Bundle savedInstanceState) { if (!LibVlcUtil.hasCompatibleCPU(this)) {            Log.e(TAG, LibVlcUtil.getErrorMsg());            Intent i = new Intent(this, CompatErrorActivity.class);            startActivity(i);            finish();            super.onCreate(savedInstanceState);            return;        }    /* Get the current version from package */        PackageInfo pinfo = null;        try {            pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);        } catch (NameNotFoundException e) {            Log.e(TAG, "package info not found.");        }        if (pinfo != null)            mVersionNumber = pinfo.versionCode;        /* Get settings */        mSettings = PreferenceManager.getDefaultSharedPreferences(this);        /* Check if it's the first run */        mFirstRun = mSettings.getInt(PREF_FIRST_RUN, -1) != mVersionNumber;        if (mFirstRun) {            Editor editor = mSettings.edit();            editor.putInt(PREF_FIRST_RUN, mVersionNumber);            editor.commit();        }        try {            // Start LibVLC            Util.getLibVlcInstance();        } catch (LibVlcException e) {            e.printStackTrace();            Intent i = new Intent(this, CompatErrorActivity.class);            i.putExtra("runtimeError", true);            i.putExtra("message", "LibVLC failed to initialize (LibVlcException)");            startActivity(i);            finish();            super.onCreate(savedInstanceState);            return;        }                super.onCreate(savedInstanceState);        /* Set up the audio player */        mAudioPlayer = new AudioPlayer();        mAudioController = AudioServiceController.getInstance();        mAudioController.addAudioPlayer(mAudioPlayer);        AudioServiceController.getInstance().bindAudioService(this);        //http://192.168.1.196/video/hao.mpg        String filepath="udp://@239.1.1.0:1234";    mAudioController.load(filepath, false);   mAudioController.play();   VideoPlayerActivity.start(this, filepath);}}
重点要阅读类VideoPlayerActivity,里面给出了一些方法等!
所需要的so文件我们可以把apk解压后获得,

在此也很感谢vlc团队将代码开源出来,我们可以根据自己需要进行修改。


1 0
原创粉丝点击