java实现屏幕共享功能工能上加x

掺水油, 积分 215, 距离下一级还需 285 积分
掺水油, 积分 215, 距离下一级还需 285 积分
掺水油, 积分 215, 距离下一级还需 285 积分
主题 : 6|帖子 : 60|积分 : 215
---来自一加社区手机客户端
人生若只如初见,何事秋风悲画扇。
主题 : 266|帖子 : 8195|积分 : 18471
普通高清膜
掺水油, 积分 215, 距离下一级还需 285 积分
掺水油, 积分 215, 距离下一级还需 285 积分
掺水油, 积分 215, 距离下一级还需 285 积分
主题 : 6|帖子 : 60|积分 : 215
文宿 发表于
普通高清膜
怎麼有點像鋼化膜啊,有點厚厚的,买的时候自带的
---来自一加社区手机客户端
人生若只如初见,何事秋风悲画扇。
焦油, 积分 183, 距离下一级还需 17 积分
焦油, 积分 183, 距离下一级还需 17 积分
焦油, 积分 183, 距离下一级还需 17 积分
主题 : 5|帖子 : 54|积分 : 183
裸机手感灰常棒
润滑油, 积分 1500, 距离下一级还需 500 积分
润滑油, 积分 1500, 距离下一级还需 500 积分
润滑油, 积分 1500, 距离下一级还需 500 积分
主题 : 13|帖子 : 415|积分 : 1500
该用户从未签到
不明,就这样用吧
---来自一加社区手机客户端
掺水油, 积分 215, 距离下一级还需 285 积分
掺水油, 积分 215, 距离下一级还需 285 积分
掺水油, 积分 215, 距离下一级还需 285 积分
主题 : 6|帖子 : 60|积分 : 215
SilverFox 发表于
裸机手感灰常棒
屏幕上是钢化膜吗
---来自一加社区手机客户端
人生若只如初见,何事秋风悲画扇。
掺水油, 积分 215, 距离下一级还需 285 积分
掺水油, 积分 215, 距离下一级还需 285 积分
掺水油, 积分 215, 距离下一级还需 285 积分
主题 : 6|帖子 : 60|积分 : 215
不明,就这样用吧
---来自一加社区手机客户端
好吧,谢谢
---来自一加社区手机客户端
人生若只如初见,何事秋风悲画扇。
勾兑油, 积分 558, 距离下一级还需 442 积分
勾兑油, 积分 558, 距离下一级还需 442 积分
勾兑油, 积分 558, 距离下一级还需 442 积分
主题 : 9|帖子 : 97|积分 : 558
我是加油GG
祝加油GG男生节快乐
植树节纪念勋章
元旦纪念勋章
圣诞节祝福勋章
马年纪念勋章 马上啥都有
在线小达人
社区上线100天纪念勋章
一加手机1勋章
羊年纪念勋章
一加手机3勋章
深圳市万普拉斯科技有限公司 版权所有(&&&&不到一周之前的发布吸引了不少人的关注,所有人都被这款不走寻常路的“旗舰机”惊到了,毕竟我们如今看到的大部分产品都会将硬件部分堆砌到极致,但MOTO&X并没有采用同样的策略,反而更加突出了的部分。现在作为LG的旗舰产品也终于发布,这款则与MOTO&X完全相反,通过过硬的配置让我们看到了其性能的强劲。不管怎么说,尽管两款手机有着不同的理念与策略,但在这一时间点上,它们是显而易见的竞争关系。MOTO&X对比LG&G2(图片引自Phonearena)MOTO&X视频对比LG&G2&&&&但从最直观的外观来看,MOTO&X配备了屏幕,通过窄边框让机身整体看起来更加紧凑,大小也比较适中。而让人意想不到的是,5.2英寸的LG&G2不仅屏幕更大,边框也比MOTO&X还要更窄。从外观来看两款手机很难说谁更好一些,但就已经试玩过两款产品的外媒表示,MOTO&X的设计要更符合人体工学,并且更结实一些。&MOTO&X(右)与LG&G2屏幕显示效果对比(图片引自Phonearena)&MOTO&X(右)与LG&G2屏幕显示效果对比(图片引自Phonearena)&&&&另外我们也不妨再来看看屏幕上两款手机的差异。MOTO&X配备了4.720p显示屏,LG&G2则是更大一点的5.2英寸1080p&True&HD&IPS显示屏。从这个角度上来看,尽管MOTO&X屏幕显示时的饱和度比较不错,但整体上LG&G2的屏幕优势要比MOTO&X的AMOLED显示屏更大一些。或者说,根据我们以往对IPS屏幕的了解,在户外使用时,LG&G2屏幕的显示效果应该比MOTO&X更加清晰。&MOTO&X(右)与LG&G2机身外观对比(图片引自Phonearena)&MOTO&X(右)与LG&G2机身外观对比(图片引自Phonearena)&&&&在功能方面,两款产品都搭载了Andorid系统,并且在基本的功能上与Andorid原生相差不是很大。不过两款手机也都有各自特色的功能点。LG&G2的特点在于为手机的某些功能提供了更多操作方式。就比如唤醒屏幕不仅仅可以用home键、也可以双击屏幕;或者唤出多任务菜单不仅仅可以长按HOME键,也可以采用三指滑动的形式。而另一方面,MOTO&X则与LG&G2不同,主要目的是将操作做到最简化。就好像MOTO&X的无触控操作或者是Active&Display,我们不用操作手机上的按键,就能实现我们想要操作的功能。总的来说,两款手机一个是再为我们提供最简单智能的操作,一个是在为我们的操作提供更多的操作方式。&&&&最后我们再来进行一个简单的总结,现阶段产品没有最终上市,我们无法说究竟谁更胜一筹。不过MOTO&X致力于转变消费者旗舰机型硬件至上的固有观念,而LG&G2则是一款更贴合消费者现有消费意识的智能手机。究竟市场会更接受哪一款产品,其实是个很有意思的问题,就让我们一同拭目以待吧。
提示:支持键盘“← →”键翻页
主屏尺寸 4G网络
投诉欺诈商家:
天津重庆哈尔滨沈阳长春石家庄呼和浩特西安太原兰州乌鲁木齐成都昆明贵阳长沙武汉郑州济南青岛烟台合肥南京杭州东莞南宁南昌福州厦门深圳温州佛山宁波泉州惠州银川
本城市下暂无经销商
下载中关村在线Android 客户端
下载中关村在线 iPhone 客户端
下载中关村在线Windows8客户端
成为中关村在线微信好友
427995899629997628882611913591026994058人阅读
&第一次写博客,为了提高自己技术水平,为了帮助更多走过弯路的人们,也为了以前自己开发过程过遇到的棘手的问题做个记录,希望各位路过的大牛别见笑了!
& &前段日子android项目中需要做解码视频取帧播放,还有当前应用屏幕录制功能,一下子蒙了,之前没有做过多媒体之类的东西,亚历山大啊,没有办法,只能硬着头皮搞了,经过多方面的Google,度娘,YaHoo,sos...,终于经过万水千山,跋山涉水,万里长城~(废话多了,就是想表达不容易!)。好了废话不多说,上代码...
编译环境:ubuntu 12.10&32位(虚拟机)&
NDK版本:android-ndk-r9b &
ffmpeg版本:1.2
一 ,环境配置
1、下载NDK同时配置NDK环境;下载ffmpeg-1.2源码
2、把ffmpeg解压到一个NDK文档的samples/hello-jni 目录(先删除原来&hello-jni.c 和Android.mk文件) &如下图:
3、在jni目录下添加如下文件Android.mk ,内容如下:
include $(all-subdir-makefiles)
4,然后在jni/ffmpeg下建立Android.mk和av.mk文件,内容如下:
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
PATH_TO_FFMPEG_SOURCE:=$(LOCAL_PATH)/ffmpeg
LOCAL_C_INCLUDES += $(PATH_TO_FFMPEG_SOURCE)
LOCAL_WHOLE_STATIC_LIBRARIES := libavformat libavcodec libavfilter libavutil libpostproc libswscale libswresample
LOCAL_MODULE := ffmpeg
include $(BUILD_SHARED_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))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-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))
= -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))
C_OBJS := $(OBJS)
C_FILES := $(patsubst %.o,%.c,$(C_OBJS))
S_FILES := $(patsubst %.o,%.S,$(S_OBJS))
FFFILES := $(sort $(S_FILES)) $(sort $(C_FILES))
5,同样在jni/ffmpeg目录下建立build_android.sh文件,内容如下:
#!/bin/bash
PREBUILT=/home/lsw/android-ndk-r9b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
PLATFORM=/home/lsw/android-ndk-r9b/platforms/android-14/arch-arm
./configure --target-os=linux \
--arch=arm \
--enable-version3 \
--enable-gpl \
--enable-nonfree \
--enable-shared \
--enable-stripping \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffserver \
--disable-ffprobe \
--enable-decoders \
--disable-symver \
--enable-encoders \
--enable-muxers \
--disable-devices \
--enable-protocols \
--enable-protocol=file \
--enable-avfilter \
--enable-network \
--disable-avdevice \
--disable-asm \
--enable-cross-compile \
--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--strip=$PREBUILT/bin/arm-linux-androideabi-strip \
--extra-cflags=&-fPIC -DANDROID& \
--extra-ldflags=&-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/crtbegin.o $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/crtend.o -lc -lm -ldl& \
sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
sed -i 's/HAVE_CBRT 0/HAVE_CBRT 1/g' config.h
sed -i 's/HAVE_CBRTF 0/HAVE_CBRTF 1/g' config.h
sed -i 's/HAVE_ISINF 0/HAVE_ISINF 1/g' config.h
sed -i 's/HAVE_ISNAN 0/HAVE_ISNAN 1/g' config.h
sed -i 's/HAVE_SINF 0/HAVE_SINF 1/g' config.h
sed -i 's/HAVE_RINT 0/HAVE_RINT 1/g' config.h
# 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))
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))&strong&
&/strong&上面PREBUILT,PLATFORM变量&的路径自己根据NDK的路径自己更改。
6,在jni/ffmpeg/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)
7,在jni/ffmpeg/libavcodec下添加Android,mk内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.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)
8,在jni/ffmpeg/libavutil libavfilter libpostproc libswscale libswresample 下添加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)
9,执行build_android.sh
A,chmod 755
build_android.sh &确保文件有权限被执行
B,然后执行如下命令 ./build_android.sh
就几秒时间在最后会出现如下文字:
WARNING: /home/lsw/android-ndk-r9b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
不用管它。
在看ffmpeg目录下生成config.h,config.log,config.mak文件
C,然后修改jni/ffmpeg/config.h下的&
#define avrestrict restrict 为 &#define av_restrict &
D,把config.log中的restrict的关键字删掉
修改jni/ffmpeg/config.h下的
HAVE_ISINF 0
HAVE_ISNAN 0
HAVE_SINF 0
HAVE_RINT 0
HAVE_LRINT 0
HAVE_LRINTF 0&
HAVE_ROUND 0&
HAVE_ROUNDF 0
HAVE_TRUNCF 0&
HAVE_TRUNC 0
HAVE_CBRT 0
HAVE_CBRTF 0
的值修改为1,例如:HAVE_TRUNC 1&
同时相应的修改jni/ffmpeg/config.mak 的值&
例如:!HAVE_LRINT =yes为HAVE_LRINT =yes&
上面修改也可以用下面方法替换*注释掉/jni/ffmpeg/libavutil 目录中的 libm.h下的所有静态(static)方法&
10,删除 libavformat libavcodec libavutil libpostproc libswscale libswresample 目录下Makefile下的:
include $(SUBDIR)../config.mak
& 删除libavcodec libavutil libswresample目录下Makefile下的 log2_tab.o \&
11,把 ffmpeg/libavutil/time.h更名为avtime.h:
同时修改下面文件中的引用libavutil/time.h为libavutil/avtime.h&
ffmpeg/libavformat/avformat.h:211&
ffmpeg/libavformat/avio.c:25&
ffmpeg/libavformat/hls.c:33&
ffmpeg/libavformat/hlsproto.c:29
ffmpeg/libavformat/mux.c:39:30
ffmpeg/libavformat/utils.c:40&
ffmpeg/libavutil/time.c:36
ffmpeg/libavfilter/f_setpts.c:30:28:
注:上面需要修改avtime.h文件引用的部分文件。根据版本,环境不同可能还会出现其他的文件引用time.h,如果当你编译的时候说找不到time.h,你就可以根据日志显示的文件逐个修改。很好解决的。
12,可能会引发version.h & No such file or directory &问题,可执行如下命令生成version.h:
./version.sh . version.h
13,终于到最后编译so库了,好紧张!
cd 到 samples/hello-jni & & 然后执行 ndk-build &&
这样就在libs/armeabi的文件夹,里面会有一个libffmpeg.so的文件
下面我介绍在编译过程中遇到的问题:&
出现/home/lsw/android-ndk-r9b/build/core/build-binary.mk:109 和build-all.mk:129 *** target file `clean' has both : and :: entries. &Stop.
解决办法:找到build-binary.mk提示错误那一行,把那一行注释掉。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:24662次
排名:千里之外
原创:10篇
评论:20条
(1)(2)(9)(5)(2)}

我要回帖

更多关于 三星屏幕aod功能 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信