vplayerandroid源碼
A. ndk arm 編譯 顯示android-19\arch-arm\usr\lib: Permission denied
首先創建一個標準的Android項目vPlayer
android create project -n vPlayer -t 8 -p vPlayer -k me.abitno.vplayer -a PlayerView
然後在vPlayer目錄里
mkdir jni && cd jni
wget htt p:/ /ffmpe g.o rg/releases/ffmpeg-0.6.t ar.bz2
tar xf ffmpeg-0.6.tar.bz2 && mv ffmpeg-0.6 ffmpeg && cd ffmpeg
在ffmpeg下新建一個config.sh,內容如下,注意把PREBUILT和PLATFORM設置正確。另外裡面有些參數你也可以自行調整,我主要是為了配置一個播放器而這樣設置的。
#!/bin/bash
PREBUILT=/home/abitno/Android/android-ndk-r4/build/prebuilt/linux-x86/arm-eabi-4.4.0
PLATFORM=/home/abitno/Android/android-ndk-r4/build/platforms/android-8/arch-arm
B. 我的手機是安卓2.2.2系統,我想用天天瀏覽器上優酷看視頻,怎樣把全能播放器(Vplayer)設為默認播放器
在你手機上隨便打開一個視頻文件,在系統彈出的對話框中先把「默認使用此方式發送」的鉤打上,再選擇Vplayer就OK了
C. 安卓什麼視頻播放器支持後台播放
1、MoliPlayer:
支持後台播放,由MoliPlayer開發團隊(Mr. Moli)研發,適用於Android,Windows Phone,IOS,支持RMVB、AVI、MKV、FLV、FLAC、APE等格式文件。
2、MX Player MX:
支持後台播放,它能夠播放幾乎每一個影片檔案,並且具備多核心的解碼能力來處理你的影片檔案和字幕。多核解碼功能,MX Video Player是Android平台上的第一款能夠支持多核解碼功能額的媒體播放器軟體。
3、vplayer:
支持後台播放,支持Divx/Xvid、flv、rmvb、avi、mkv、wmv、mp4等視頻格式。VPlayer具有很多實用和方便的功能,干凈簡潔的界面,加上流暢的播放處理能力。
4、kmplayer:
支持後台播放,早期名叫WaSaVi播放器。作者姜龍喜(韓國),歷時七年自主開發的朝鮮語多媒體圖形視窗工程免費項目。KMPlayer是一套將網路上所有能見得到的解碼程式(Codec)全部收集於一身的影音播放軟體;此外,KMPlayer還能夠播放DVD與VCD、匯入多種格式的外掛字幕。
5、MoboPlayer:
支持後台播放,支持幾乎所有的視頻格式和載入字幕,並且能通過高度優化的核心解碼器在手機上流暢播放各種高清視頻。MoboPlayer是Android Market電子市場上下載量第一的視頻播放器,被稱為「Android平台的萬能播放器」。
D. 萬能播放器Vitamio在android開發中怎麼用
正文
一、實現目標
1.1支持格式
支持主流的視音頻格式:mp3/mp4/mkv/avi/3gp/rmvb/mov/flv等。
1.2支持功能
1.2.1當然最重要的是播放功能,含播放控制(播放、暫停,聲音、亮度調整等)
1.2.2可以掃描SDcard,用列表展現出來,可以搜索
1.2.3可以播放網路視音頻(http、rtsp、mms)
二、Vitamio項目簡介
Vitamio是一個支持所有Android設備的多媒體框架。Vitamio與Android默認的MediaPlayer工作方式相似,但包含更加強大的功能!(注意:Vitamio商業化後個人免費、公司收費)
2.1網址
官方微博:http://weibo.com/vitamio
官方網址:http://vov.io/vitamio/
2.2成功案例
國內:VPlayer、熊貓影音、321影音等
國外:Tvltaliane、Dizi TV等
2.3 網路協議
支持以下協議的音頻和視頻播放:
* MMS
* RTSP (RTP, SDP)
* HTTP流式傳輸(progressive streaming)
* HTTP Live Streaming (M3U8), Android 2.1+
2.4 媒體格式
Vitamio集成了許多音頻和視頻的解碼包,相比Android內置默認的媒體格式,這里列出其中的一些:
* divx/xvid
* wmv
* flv
* ts
* rmvb
* mkv
* mov
* m4v
* avi
* mp4
* 3gp
2.5 字幕
Vitamio支持顯示一些內置或外掛字幕格式:
* SubRip(.srt)
* Sub Station Alpha(.ssa) / Advanced Sub Station移步wiki
* Alpha(.ass)
* SAMI(.smi/.sami)
* MicroDVD(.sub/.txt)
* SubViewer2.0(.sub)
* MPL2(.mpl/.txt)
* Matroska (.mkv) 字幕軌跡
2.6 其他功能
* 後台播放
* 多音軌支持
* 多字幕支持,包括內部或外掛的
* 多平台處理器優化
* 可調長寬比
* 文字編碼自動檢測
2.7許可/授權(Lisences)
Vitamio使用了sevral開源項目,感謝他們。
2.7.1FFmpeg
FFmpeg提供軟體解碼器和多路輸出(demuxers)。Vitamio使用LGPLv2.1許可下FFmpeg的代碼,代碼可以從這里下載。
2.7.2Universalchardet (是Mozilla的一個自動檢測頁面文字編碼的程序)
Universalchardet是Mozilla的編碼檢測庫。Vitamio使用MPL許可下Universalchardet的代碼來檢測字母文本編碼。
以上主要是對官方介紹進行了簡單翻譯。
E. 什麼播放器可以播放VPL格式的視頻
VPlayer是Android平台的一款全新的視頻播放器,支持格式非常多,有Divx/Xvid, flv, rmvb, avi, mkv, wmv, mp4,號稱:全能播放器,而且是免費的!最大的缺點就是需要android 2.2以上rom支持,初步測試,支持視頻格式性能非常優秀。
更新:
1.支持全屏,你可以像9使用Google地圖一樣用兩個手指來切換全屏顯示。
2.更好用的文件瀏覽器。
3.修復了3gp文件播放的Bug。
F. 安卓系統解碼能力最強的播放器是哪個主要解碼2k視頻我用過mxplayer vplayer 感覺差
。吃。。。想你
G. 安卓手機視頻播放器中:rockplayer,MoboPlayer,MX視頻播放器,VPlayer全能視頻播放器哪個好,求指點
幾款都用過,個人認為:
rockplayer的軟解碼能力最強,支持的格式最多
MoboPlayer的界面很絢,解碼能力也不錯
MX Player的獨門絕活是可以半硬半軟,怎麼說呢,就是視頻用硬解,聲音用軟解碼。這對於某些720P的視頻能夠充分利用U的硬解能力,其它播放器必須視頻音頻都符合硬解的標准才硬解碼
VPlayer界面很簡單,軟解碼的能力也不錯,運行效率很高,在一些600Mhz的V6 CPU機器上能夠流暢運行
H. 如何用Android NDK編譯FFmpeg
Android NDK編譯FFmpeg
配置編譯環境
在 VirtualBox 中創建一個 Ubuntu 虛擬機
在 Ubuntu 虛擬機中使用 sudo passwd root 命令啟動 root 賬戶
用 root 賬戶登錄進入 Ubuntu
將 android-ndk-r4b-linux-x86.zip 中的內容解壓縮到 /root 目錄下
將 android-sdk_r07-linux_x86.tgz 中的內容解壓縮到 /root 目錄下
將 ffmpeg-0.6.1.tar.bz2 中的內容解壓縮到 /root/ffmpeg/jni 目錄下
三、准備編譯 FFmpeg
編寫 mk 文件
在 /root/ffmpeg/jni 目錄中創建一個 Android.mk 文件,內容如下
?1include $(all-subdir-makefiles)
在 /root/ffmpeg/jni/ffmpeg-0.6.1 目錄中創建一個 Android.mk 文件,內容如下
6LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_WHOLE_STATIC_LIBRARIES := libavformat libavcodec libavutil
libpostproc libswscale
LOCAL_MODULE := ffmpeg
include $(BUILD_SHARED_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))
在 /root/ffmpeg/jni/ffmpeg-0.6.1 目錄中創建一個 av.mk 文件,內容如下
# LOCAL_PATH is one of libavutil, libavcodec, libavformat, or
libswscale
#include $(LOCAL_PATH)/../config-$(TARGET_ARCH).mak
include $(LOCAL_PATH)/../config.mak
OBJS :=
OBJS-yes :=
MMX-OBJS-yes :=
include $(LOCAL_PATH)/Makefile
# collect objects
OBJS-$(HAVE_MMX) += $(MMX-OBJS-yes)
OBJS += $(OBJS-yes)
FFNAME := lib$(NAME)
FFLIBS := $(foreach,NAME,$(FFLIBS),lib$(NAME))
FFCFLAGS = -DHAVE_AV_CONFIG_H -Wno-sign-compare -Wno-switch
-Wno-pointer-sign
FFCFLAGS += -DTARGET_CONFIG=/"config-$(TARGET_ARCH).h/"
ALL_S_FILES := $(wildcard $(LOCAL_PATH)/$(TARGET_ARCH)/*.S)
ALL_S_FILES := $(addprefix $(TARGET_ARCH)/, $(notdir $(ALL_S_FILES)))
ifneq ($(ALL_S_FILES),)
ALL_S_OBJS := $(patsubst %.S,%.o,$(ALL_S_FILES))
C_OBJS := $(filter-out $(ALL_S_OBJS),$(OBJS))
S_OBJS := $(filter $(ALL_S_OBJS),$(OBJS))
else
C_OBJS := $(OBJS)
S_OBJS :=
endif
C_FILES := $(patsubst %.o,%.c,$(C_OBJS))
S_FILES := $(patsubst %.o,%.S,$(S_OBJS))
FFFILES := $(sort $(S_FILES)) $(sort $(C_FILES))
在 /root/ffmpeg/jni/ffmpeg-0.6.1/libavcodec 目錄中創建一個 Android.mk 文件,內容如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := /
$(LOCAL_PATH) /
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_LDLIBS := -lz
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)
在 /root/ffmpeg/jni/ffmpeg-0.6.1/libavformat 目錄中創建一個 Android.mk 文件,內容如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := /
$(LOCAL_PATH) /
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_CFLAGS += -include "string.h" -Dipv6mr_interface=ipv6mr_ifindex
LOCAL_LDLIBS := -lz
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)
在 libavfilter、libavutil、libpostproc 和 libswscale 目錄中各創建一個 Android.mk
文件,內容如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES := /
$(LOCAL_PATH) /
$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)
修改 libm.h 文件和 Makefile 文件
編輯 /root/ffmpeg/jni/ffmpeg-0.6.1/libavutil 目錄中的 libm.h 文件,刪除以下 static
方法
#if !HAVE_LRINT
static av_always_inline av_const long int lrint(double x)
{
return rint(x);
}
#endif /* HAVE_LRINT */
#if !HAVE_LRINTF
static av_always_inline av_const long int lrintf(float x)
{
return (int)(rint(x));
}
#endif /* HAVE_LRINTF */
#if !HAVE_ROUND
static av_always_inline av_const double round(double x)
{
return (x > 0) ? floor(x + 0.5) : ceil(x - 0.5);
}
#endif /* HAVE_ROUND */
#if !HAVE_ROUNDF
static av_always_inline av_const float roundf(float x)
{
return (x > 0) ? floor(x + 0.5) : ceil(x - 0.5);
}
#endif /* HAVE_ROUNDF */
#if !HAVE_TRUNCF
static av_always_inline av_const float truncf(float x)
{
return (x > 0) ? floor(x) : ceil(x);
}
#endif /* HAVE_TRUNCF */
編輯 libavcodec、libavfilter、libavformat、libavutil、libpostproc 和 libswscale
目錄中的 Makefile 文件,刪除
?1include $(SUBDIR)../subdir.mak
和
?1include $(SUBDIR)../config.mak
生成 config.h 文件
在 /root/ffmpeg/jni/ffmpeg-0.6.1 目錄中創建一個 config.sh 文件,使用 Android NDK r4b
編譯時內容如下
#!/bin/bash
PREBUILT=/root/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.4.0
PLATFORM=/root/android-ndk-r4b/build/platforms/android-8/arch-arm
./configure --target-os=linux /
--arch=arm /
--enable-version3 /
--enable-gpl /
--enable-nonfree /
--disable-stripping /
--disable-ffmpeg /
--disable-ffplay /
--disable-ffserver /
--disable-ffprobe /
--disable-encoders /
--disable-muxers /
--disable-devices /
--disable-protocols /
--enable-protocol=file /
--enable-avfilter /
--disable-network /
--disable-mpegaudio-hp /
--disable-avdevice /
--enable-cross-compile /
--cc=$PREBUILT/bin/arm-eabi-gcc /
--cross-prefix=$PREBUILT/bin/arm-eabi- /
--nm=$PREBUILT/bin/arm-eabi-nm /
--extra-cflags="-fPIC -DANDROID" /
--disable-asm /
--enable-neon /
--enable-armv5te /
--extra-ldflags="-Wl,-T,$PREBUILT/arm-eabi/lib/ldscripts/armelf.x
-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib
$PREBUILT/lib/gcc/arm-eabi/4.4.0/crtbegin.o
$PREBUILT/lib/gcc/arm-eabi/4.4.0/crtend.o -lc -lm -ldl"
使用 Android NDK r5 編譯時內容如下
#!/bin/bash
PREBUILT=/root/android-ndk-r5/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86
PLATFORM=/root/android-ndk-r5/platforms/android-8/arch-arm
./configure --target-os=linux /
--arch=arm /
--enable-version3 /
--enable-gpl /
--enable-nonfree /
--disable-stripping /
--disable-ffmpeg /
--disable-ffplay /
--disable-ffserver /
--disable-ffprobe /
--disable-encoders /
--disable-muxers /
--disable-devices /
--disable-protocols /
--enable-protocol=file /
--enable-avfilter /
--disable-network /
--disable-mpegaudio-hp /
--disable-avdevice /
--enable-cross-compile /
--cc=$PREBUILT/bin/arm-eabi-gcc /
--cross-prefix=$PREBUILT/bin/arm-eabi- /
--nm=$PREBUILT/bin/arm-eabi-nm /
--extra-cflags="-fPIC -DANDROID" /
--disable-asm /
--enable-neon /
--enable-armv5te /
--extra-ldflags="-Wl,-T,$PREBUILT/arm-eabi/lib/ldscripts/armelf.x
-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib
$PREBUILT/lib/gcc/arm-eabi/4.4.0/crtbegin.o
$PREBUILT/lib/gcc/arm-eabi/4.4.0/crtend.o -lc -lm -ldl"
打開終端,進入 /root/ffmpeg/jni/ffmpeg-0.6.1 目錄,運行下面的命令
I. 谷歌android的和蘋果平台上支持的視頻格式。
Android支持很多種格式,但是蘋果只支持MP4格式,所以他們的共同支持的視頻格式只有MP4
J. vplayer怎麼看sd卡里的文件我安卓手機安裝了Vp|ayer,但只能看到手機內存中的視頻
是的。每一款播放軟體,都只認自己下載的視頻。比如,您用360影視大全緩存的視頻,如果想在騰訊視頻里看,那就看不到了,因為不是它緩存的,所以就不認了,也就無法看了。