您的位置:首页 > 移动开发 > Android开发

[RK3288][Android6.0] 调试笔记 --- 开机视频无法播放

2017-09-04 10:41 603 查看
Platform: Rockchip

OS: Android 6.0

Kernel: 3.10.92

之前在平台调试版本实现了开机播放mp4 video,在release的时候发现播放不了。

一直朝开机加载顺序和调试版本不一致的思路去研究这个问题,后来发现是ffplayer播放文件没有权限,真是醉了。

log如下:

01-01 08:04:22.760   212   427 I RockFFPlayer: setDataSource(url =/system/media/bootvideo.mp4)
01-01 08:04:22.760   212   427 E RockFFPlayerBase: openContext : in
01-01 08:04:22.760   212   212 D RockFFPlayer: prepareAsync ok
01-01 08:04:22.760   212   427 E RockFFPlayer: ffmpeg version v2.0 16-08-31
01-01 08:04:22.760   212   427 E RockFFPlayer: May Be MP4 file type
01-01 08:04:22.760   212   427 E RockFFPlayer: ffio_fdopen:MP4,IO_BUFFER_SIZE set 1MB
01-01 08:04:22.760   212   427 E RockFFPlayer: init_input:avio_open2 failed
01-01 08:04:22.760   212   427 E RockFFPlayer: init_input failed
01-01 08:04:22.760   212   427 I RockFFPlayer: avformat_open_input return fail


所以log还是需要细看的。

为什么只有在release版本出现这个问题的原因是:

release版本无法直接adb push 到system分区,然后我是通过先push到sdcard然后remount system再copy到system/media目录下,

这样权限变成如下所示:

-rw-rw---- root     sdcard_rw  1003111 2017-01-01 08:02 bootvideo.mp4


因此ffplayer没权限操作。

解决方法:

#chmod 644 /system/media/bootvideo.mp4


最终正式改动:

kris@:~/rk3288/device/rockchip/rk3288$ g df 9c35401a0fa29dc34be33dbc65c1a502bb7f0ebf 92cc6b55b82838753b78a10403bfe72afd16758b
diff --git a/bootvideo.mp4 b/bootvideo.mp4
new file mode 100644
index 0000000..cc5abe6
Binary files /dev/null and b/bootvideo.mp4 differ
diff --git a/device.mk b/device.mk
index 05d0311..6a94e87 100644
--- a/device.mk
+++ b/device.mk
@@ -122,6 +122,11 @@ PRODUCT_PACKAGES += \
badblocks

+#Kris,170904, copy boot video.
+PRODUCT_COPY_FILES += \
+    device/rockchip/rk3288/bootvideo.mp4:system/media/bootvideo.mp4


kris@:~/rk3288/system/core$ g df 40d820478b7e56fc2fcbc38ccbe756e3b06f99f5 51a572cb490b012a9fcd88d0ee0395073142870f
diff --git a/libcutils/fs_config.c b/libcutils/fs_config.c
index 12ab79e..4f1eb44 100644
--- a/libcutils/fs_config.c
+++ b/libcutils/fs_config.c
@@ -120,6 +120,9 @@ static const struct fs_path_config android_files[] = {
{ 00644, AID_MEDIA_RW,  AID_MEDIA_RW,  0, "data/media/*" },
{ 00644, AID_SYSTEM,    AID_SYSTEM,    0, "data/app-private/*" },
{ 00644, AID_APP,       AID_APP,       0, "data/data/*" },
+    /*Kris, 170904, for ffplayer play.*/
+    { 00644, AID_ROOT,    AID_ROOT,       0, "system/media/bootvideo.mp4" },
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: