{"id":18761981,"url":"https://github.com/codegather/record_movie","last_synced_at":"2025-04-13T03:32:01.229Z","repository":{"id":37632295,"uuid":"282689250","full_name":"CodeGather/record_movie","owner":"CodeGather","description":"一个原生视频录制flutter插件，断点续录、视频压缩等功能，采用原生实现没有依赖第三方库","archived":false,"fork":false,"pushed_at":"2023-07-29T08:25:55.000Z","size":5033,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T21:22:06.208Z","etag":null,"topics":["audi","com","compress","ios","java","objective-c","video"],"latest_commit_sha":null,"homepage":"https://ki5k.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeGather.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-26T16:29:27.000Z","updated_at":"2024-11-25T08:11:58.000Z","dependencies_parsed_at":"2024-11-07T18:18:36.030Z","dependency_job_id":null,"html_url":"https://github.com/CodeGather/record_movie","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeGather%2Frecord_movie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeGather%2Frecord_movie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeGather%2Frecord_movie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeGather%2Frecord_movie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeGather","download_url":"https://codeload.github.com/CodeGather/record_movie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248659679,"owners_count":21141158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audi","com","compress","ios","java","objective-c","video"],"created_at":"2024-11-07T18:18:30.052Z","updated_at":"2025-04-13T03:32:00.663Z","avatar_url":"https://github.com/CodeGather.png","language":"Java","readme":"# record_movie\n\n这是一个原生的flutter视频录制插件，实现录制视频后返回视频路径，由于项目需求用来代替ffmpeg视频处理的方案。\n\n## 支持程度\n\n|    平台  | 支持  |\n| :------:|:----:|\n| Android  | YES |\n| Ios      | YES |\n\n### 相关功能\n\n- 支持断点续录\n- 支持回删功能\n- 支持切换相机（前后）\n- 支持开启闪光灯\n\n为减小安卓包大小，所以安卓和iOS都未采用ffmpeg来处理视频\n\n安卓端使用cmaera、camera2、MediaRecorder、mp4parser 等等\niOS端使用AVCaptureConnection、AVMutableComposition 等等\n\n### 遇到以及可能存在的问题\n\n1、安卓端存在录制的实际视频内用与倒计时的进度有偏差，目前解决的方案是每次录制完成后重新获取他的视频时间长度，然后下次录制的时间是总时间减去已录制的时间，这就造成了倒计时的进度天有可能做的快时间断点偏前的尴尬局面，如果仔细观察你会发现进度条会在断点的后方重新跑。\n\n2、安卓端遇到camera和camera2的兼容问题，目前的解决办法是单独分开，一边后期维护，即两个布局文件、两个activity、两个Utils\n\n3、安卓端遇到传递JSONObject数据时出现解析错误的情况，解决方案是用第三方库com.alibaba:fastjson 来替换本身自带的json解析\n\n4、iOS端遇到打开iOS原生端controller的问题\n\n5、iOS端状态栏问题，理论上打开视频录制界面时应该隐藏状态栏（还未实现）\n\n6、iOS端返回数据使用FlutterEventSink来处理返回数据\n\n7、iOS端事件代理、事件回调、线程执行、如何使用主线程等等问题\n\n8、iOS端使用result时代理方法只执行一次的问题，解决方案是去除全局的xDVideocamera，改成每次点击的时候都进行初始化\n\n\u003cimg src=\"https://raw.githubusercontent.com/CodeGather/record_movie/master/screenshot/android.gif\" alt=\"android截图1\" width=\"100\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/CodeGather/record_movie/master/screenshot/ios.gif\" alt=\"android截图2\" width=\"100\"\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodegather%2Frecord_movie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodegather%2Frecord_movie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodegather%2Frecord_movie/lists"}