第二篇、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
- 第二篇、vlc-android之源码介绍
- 第一篇、vlc-android之开篇介绍
- vlc-android源码编译
- vlc-android源码编译
- vlc-android源码阅读笔记之视频播放器界面
- vlc-android源码git下载
- Vlc-for-android源码分析
- Vlc-for-android源码分析
- vlc-android源码的编译
- vlc-android源码git下载
- Vlc-for-android源码分析
- VLC Android播放器介绍
- Android源码解读 第二篇
- 第二篇--下载Android源码
- vlc源码分析之RTSP会话流程
- VLC for Android源码下载和编译
- vlc-android源码编译过程记录
- vlc-android源码编译过程记录
- 高级系统架构师
- 白银做男科检查费用
- Mysqladmin -help 命令
- 管理者:我不需要你喜欢我
- 私有ini文件操作类
- 第二篇、vlc-android之源码介绍
- 软件质量控制与质量保证
- 数据库基准测试的目的和作用
- Linux关机命令详解
- SRM 626 D1L1: FixedDiceGameDiv1,贝叶斯公式,dp
- Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression
- IOS for delegate 之我见
- 不弹出菜单
- 在JSP中使用JavaBean