职位ID:158954

短视频app android ios研发

  • 合作方式:
  • 项目制 全国远程
  • 预估日薪:
  • 1000
  • 预估总价:
  • 30000元
  • 预估工时:
  • 30天
  • 所在区域:
  • 全国远程

需求描述

岗位一:高级 Android 开发工程师 (音视频/互动娱乐方向)
【岗位职责】
短剧业务开发:负责短剧模块的瀑布流播放器开发(类抖音模式),基于 ExoPlayer 进行二次封装,实现秒开、预加载、无缝循环播放及内存管理。
剧本杀核心引擎:
开发多人在线房间系统,处理复杂的长连接信令(WebSocket)。
核心攻坚:实现客户端语音采集上传,并实时拉取服务端生成的“虚拟形象视频流”进行低延迟渲染(需处理 SurfaceView/TextureView 渲染逻辑)。
实现类似 Galgame 的剧情交互逻辑(视频/图片/音频资源的无缝切换与分支跳转)。
UI/UX 实现:高度还原设计稿(如参考图中的暗黑/赛博朋克风格),自定义复杂的 View 和动画效果。
性能调优:解决多路视频流并发时的手机发热、耗电及OOM(内存溢出)问题。
【任职要求】
基础能力:
计算机相关专业,3-5年以上 Android 开发经验,精通 Kotlin 和 Java。
熟练掌握自定义 View,能处理复杂的布局嵌套和层级优化。
音视频专项(硬性要求):
精通 ExoPlayer 或 ijkplayer,深入理解 Android 播放器生命周期及缓存策略。
有实时音视频(RTC)开发经验:熟悉声网 Agora、ZEGO 或 WebRTC 协议,能够处理推流(语音)和拉流(视频)的逻辑。
了解 H.264/H.265 编解码原理,能处理视频流的延时和同步问题。
架构能力:
熟悉 MVVM/MVI 架构,熟练使用 Jetpack 组件(LiveData, ViewModel, Room)。
熟悉 WebSocket 编程,具备“断线重连”、“消息积压处理”等即时通讯开发经验。
【加分项】
有《狼人杀》、《剧本杀》或直播类 App 开发经验。
熟悉 OpenGL ES 或 Vulkan,有视频滤镜或渲染优化经验者优先。
岗位二:高级 iOS 开发工程师 (音视频/互动娱乐方向)
【岗位职责】
短剧业务开发:基于 AVFoundation 框架开发高性能短视频播放器,实现类似 TikTok 的无限滑动体验,解决滑动掉帧和卡顿问题。
剧本杀核心引擎:
构建稳定的多人房间逻辑,负责信令交互与状态同步。
核心攻坚:集成实时音视频 SDK,实现麦克风音频流的采集与降噪,并高效渲染服务端回传的“虚拟形象视频流”(Metal 或 AVSampleBufferDisplayLayer 层级优化)。
开发互动剧情播放器,管理多媒体资产的预加载与即时切换。
UI与交互:使用 UIKit(或 SwiftUI 混合)实现高保真UI,处理复杂的动画交互。
系统兼容性:处理 iOS 后台音频保活、麦克风权限管理及不同机型的适配。
【任职要求】
基础能力:
计算机相关专业,3-5年以上 iOS 开发经验,精通 Swift (Obj-C 能读懂即可)。
深入理解 iOS 内存管理机制(ARC),能排查循环引用导致的内存泄漏。
音视频专项(硬性要求):
精通 AVFoundation 框架,熟练使用 AVPlayer 及相关底层 API。
具备 RTC 开发经验:熟悉 WebRTC 或第三方 RTC SDK(声网/腾讯云等)的集成。
能处理复杂的音频 Session 管理(AVAudioSession),解决“开启语音通话后背景音量变小”等常见冲突问题。
网络与并发:
熟练使用 GCD 进行多线程编程,确保视频解码和UI渲染不阻塞主线程。
熟悉 WebSocket 协议,有长连接即时通讯开发经验。
【加分项】
有开发过视频编辑、即时通讯(IM)或大型游戏辅助类 App 经验。
了解 Metal 图形渲染技术者优先。
招聘面试题库(专为您的项目设计)
在面试这两位工程师时,为了确保他们能搞定您的 “虚拟形象视频流” 和 “剧本杀交互”,请务必询问以下技术问题:
针对 Android & iOS 通用问题:
关于虚拟形象流的延迟:
问: “如果用户说话,服务端转成视频流再推回来,怎么保证用户感觉不到明显的延迟?你会用什么协议接收视频流?(HLS 还是 RTMP 还是 WebRTC?)”
正确思路: 必须回答 WebRTC 或者 UDP based RTC。如果回答 HLS(m3u8),直接淘汰,因为延迟会高达5-10秒,没法对话。
关于短剧滑动:
问: “做类似抖音的滑动播放,怎么防止滑太快导致的内存暴涨和OOM?”
正确思路: 关键词是 “对象复用”(不为每个视频创建新的播放器实例,而是复用3个播放器实例轮转)和 “LRU缓存策略”。
关于剧本杀逻辑:
问: “参考图里的房间,如果我也在看剧情,你也在看剧情,但我选了A选项,你选了B选项,代码层面上如何管理这种状态?”
正确思路: 需要通过 状态机 (State Machine) 来管理本地剧情进度,同时通过 WebSocket 仅向服务器同步“关键决策”,而不是同步所有视频进度。
关于音频冲突:
问: “当背景音乐(BGM)正在播放,用户突然开启麦克风说话,这时候BGM应该怎么处理?技术上怎么实现?”
正确思路: iOS需要配置 AVAudioSession 的 Category 为 PlayAndRecord 并设置 DuckOthers(压低背景音)或 MixWithOthers。Android 需要处理 AudioFocus。

投递职位 已有6人投递,发布人 点此登录 后查看。

信用行为

  • 发布项目
    7
  • 订单总数
    3
  • 退款单数
    2

完善简历

工程师完善技术能力和项目经验,更易接到订单

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信客服

需求方请加需求方端客服沟通需求,工程师请加工程师端客服浏览推送职位

需求方端客服
工程师端客服
联系需求方端客服