2017-10-03 9 views
0

소개 및 컨텍스트로, 저는 현재 초보자 IOS 개발자입니다.이 앱을 만들 때 바퀴를 너무 많이 다시 만들지 않으려 고합니다. 바퀴를 다시 만들면 매우 비쌉니다.)iOS 시간 코드 동기화 된 다운로드 가능한 애니메이션 시스템

이 앱을 통해 사용자는 인터넷에서 우리의 비디오를 다운로드 할 수 있으며 오프라인 사용을위한 스토리지가 허용됩니다. 이러한 비디오를 장치에 저장하는 문제는 그 중 많은 부분이 너무 길어서 저장하기에 너무 크다는 것입니다.

동영상은 매우 간단하지만 처음부터 끝까지 몇 개의 짧은 "실제"동영상 클립으로 구성되며 동영상의 대부분은 화면에서 움직이는 스틸 이미지입니다. 애니메이션은 불투명도와 간단한 변형 키 프레임 (정적 앵커 포인트를 중심으로 이동, 크기 조절, 회전)으로 구성되며 각 전환에 다양한 여유 함수가 필요합니다.

가장 힘든 부분은 "비디오"플레이어가 오디오 플레이어의 시간 코드를 추적 할 수 있어야하고 일반 비디오 플레이어와 같은 임의의 지점을 찾는 것을 지원해야한다는 것입니다.

이제 문제를 설명 했으므로 여기에 나와있는 해결책이 있습니다. 이 방법을 사용하면 XY 문제의 가능성을 줄일 수 있기를 바랍니다. :)

아이디어는 기본적으로 애니메이션으로 Final Cut 및 기타 편집 프로그램에서 수행하는 작업의 멍청한 버전을 수행하는 것입니다. 때로는 겹쳐서 많은 클립이 있고 위치, 크기, 회전 등을 애니메이션 할 수 있습니다. 키 프레임을 사용하는 각각의 불투명도.

내 첫 번째 본능은 iOS의 게임 엔진을 사용하여 애니메이션을 만드는 것입니다 (어쩌면 SceneKit은 애니메이션이 장면의 시간을 실시간으로 사용하는 것처럼 보이기 때문에 가능합니다. 그리고 나는 2D 애니메이션을하고 있습니다.) 그리고 오디오 플레이어와 동기화 시간을 수동으로 처리 할 수있을뿐만 아니라 비디오를 검색 할 때와 클립 시작/끝 시점에서 수동으로 노드 추가 및 제거를 수동으로 처리 할 수 ​​있습니다.

내장 된 시스템, 플러그인 등을 통해 내가 개발하고 유지 보수하는 것을 더 쉽고 빠르게 만들 수있는 것은 무엇입니까? 직접 애니메이션을 일부 사용자 지정 형식으로 코드 변환 할 필요가 없다면 두 배의 점수가 필요합니다. 대신 SceneKit의 https://developer.apple.com/documentation/avfoundation/avplayeritem https://developer.apple.com/documentation/avfoundation/avasset

가 살펴 : 나는 내 댓글에서 언급 한 바와 같이

+0

귀하의 질문이 이미 너무 광범위하므로 타이밍 질문 이외의 모든 것을 편집하고 나머지 질문은 다른 질문에서 다루는 것이 좋습니다. – Xartec

답변

0

귀하의 질문에 오히려 광범위 한 여러 질문이 들어, 난 당신이 가능성이 가장 어려운 부분으로 언급 한 것을 해결한다 SpriteKit 및 해당 SKVideoNode.

또한 금속 비디오 처리를 연구합니다. 시작 지점으로 사용할 수있는 몇 가지 예제 프로젝트를 종료했습니다.

+0

SceneKit과 함께 SKVideoNode를 사용할 수 있습니다 – Knight0fDragon

+1

그래도 그는 2D 애니메이션 만 할 것임을 언급하면서 SceneKit을 사용하는 데는 아무런 이유가 없습니다. – Xartec

+0

빌보드와 3D가있을 수도 있습니다 – Knight0fDragon