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影视大全缓存的视频,如果想在腾讯视频里看,那就看不到了,因为不是它缓存的,所以就不认了,也就无法看了。