zoukankan      html  css  js  c++  java
  • 仿:Android

    作者:林冠宏 / 指尖下的幽灵
    掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8
    博客:http://www.cnblogs.com/linguanh/
    GitHub : https://github.com/af913337456/

    为了您的直观体验,请务必看完下面 gif 图,源码 gitHub 链接在其之后。

    做这个东西的目的是:
    完善毕设: 一个没依赖各种云,而使用C++和Golang做后端的仿微信APP


    为了避免大家浪费时间,直接先看下面的 Gif,略大,请耐心点。看完后,若你觉得会需要到,那么就请听我继续。

    gif 链接 http://123.57.244.105:8081/commentthumb/GIF.gif
    git显示,略大,请耐心

    GitHub 链接

    废话一句:这个显示只是其中一部分,重点是:FFmpeg + Camera 的录制部分,所以,你的星星(star)也是一种更新通知 (我通知你)。

    https://github.com/af913337456/WeChatVideoView

    功能点

    如果你看完上面的gif图,你会发现如下几点功能 (Function list):

    1,直观的

    • 播放前,可以显示封面缩略图
    • 播放时,如果还没有本地缓存,那么先进行下载
    • 下载过程中,显示圆型区域进度效果
    • 下载后,播放完毕后可以循环播放
    • 播放已经播放过的,是具备本地缓存的,也就是既能播放网络,也能播放本地

    2,隐藏的

    • 低耗电量
    • 低内存占用
    • 无延迟图与视频切换
    • 低耦合,高内聚,几行代码接入,一共3个类

    解析

    直观的功能点,几乎就是和新版微信的一样,从朋友圈点击一个视频,然后进入到一个 Activity 页面进行加载以及播放。

    为什么低耗电量和低内存占用?

    因为采用的是 SurfaceView 而不是 TextureView,图与视频切换的切换延迟也是这个原因。

    在你的 Activity 中这样使用


    这样就会以 id 为 activity_main 的 Relativelayout 为父容器装载。
    因为要避免内存泄露,所以你还需要做完下面的一些步骤,不会超过6行代码。
    git显示,略大,请耐心

    技术点 (可以不看)

    1,下载操作:

    自定义 AsyncTask。PS:AsyncTask 比 Thread + handler 重量级却方便(回调进度),但是,如果是 即放即用,结束即销毁,那么,no need to think about this;

    2,视频播放组合拳: surfaceView + mediaPlayer

    surfaceView 用作显示,mediaPlayer 用来解码
    两者关系: mediaPlayer 绑定 surfaceView。

    为什么不用 TextrueView?
    3,进度区域

    自定义 View,3个画笔绘制,一个圆,一个边,一个扇区。

  • 相关阅读:
    TRAC-IK机器人运动学求解器
    机器人关节空间轨迹规划--S型速度规划
    机械臂运动学逆解(Analytical solution)
    Windows中读写ini文件
    glog日志库使用笔记
    V-rep学习笔记:切削
    机器人单关节力矩控制
    机器人中的轨迹规划(Trajectory Planning )
    DDD Example
    clearing & settlement
  • 原文地址:https://www.cnblogs.com/linguanh/p/6770391.html
Copyright © 2011-2022 走看看