2013-02-14 2 views
0

두 개의 iOS 기기가 있으며 둘 다 동일한 동영상 사본을 가지고 있습니다. 두 장치 모두 블루투스를 통해 통신하고 있습니다. 비디오는 한 장치에서만 재생되고 다른 장치는 리모컨에서 재생됩니다. "원격 제어"장치에는 비디오의 지속 시간을 보여주는 스크러버가 필요합니다.다른 기기에서 재생되는 동영상과 동기화되어 한 기기에 스크러버 유지

비디오 재생과 동기화 된 스크러버를 유지하는 가장 좋은 방법은 무엇입니까?

나는 비디오를 재생하기 위해 AVPlayer를 사용하고 있으며, 블루투스 연결을 위해 Gamekit을 사용하고 있습니다.

+0

현재 위치 최대를 보낼 수있는 플레이어 장치를 가져옵니다 내가 더 아무 것도 설명 할 필요가 있다면 알려주세요, 행운 /이 말이 바랍니다. 소요 시간을 기준으로 스크러버를 업데이트하고 현재 위치를 사용하여 스크러버 위치를 조정합니다. 그런 다음 중지, 일시 중지, 다시 시작 등의 작업에 응답해야합니다. 스크러버가 비디오 재생 위치를 제어해야하는지 또는 위치를 나타내는 경우에만 제어가 필요합니까? – Bergasms

+0

위치를 표시하고 제어해야합니다. 비디오를 재생하는 장치는 제어 할 수 없습니다. "원격 제어"장치는 비디오를 시작/중지합니다. 내가 확실히 알지 못하는 문제는 네트워크 대기 시간입니다. 원격 제어 장치가 재생을 말하면 실제로 메시지를 수신 할 시간과 실제로 재생을 시작할 시간입니다. 사용자가 불일치하지 않도록해야합니다. – Luke

답변

0

ㅎ, 잘 재미있을 것입니다. 대기 시간은 항상 얻을 수있는 것이므로 일부 완화 전략이 필요합니다. 나는 사람들이 지체를 다루는 특정한 방법들을 살펴볼 것을 제안 할 것이다. 내가 제안 할 수있는 한 가지는 중요한 두 가지 메시지 유형을 비판적으로 나누는 것입니다. 예를 들어 정지/일시 정지/재생/재시작 명령이 나에게 중요 할 수 있습니다. 그 메시지가 통과되기를 원하면 그 메시지가 사라질 때까지 계속 노력할 것입니다.

스크러버 위치를 양방향 (플레이어에서 원격, 플레이어에서 원격)으로 변경하는 것과 같은 메시지는 중요하지 않습니다. 당신은 그 (것)들을 보내고있다, 그러나 당신은 응답을 acking 또는 배달 된 ㄴ다는 것을 확인하는 시간을 낭비하면 안된다. UDP와 TCP의 차이점과 비슷한 종류. 이들은 단지 연결을 통해 전송되며, 기본적으로 패키지는 (scrubberposition, position_as_time, identifier_number)보다 복잡하지 않게됩니다. 받은 마지막 식별자 번호를 기록하고 (식별자 번호는 단조롭게 증가하는 번호 임), 이보다 작은 수의 메시지를 버리고 높은 수의 위치로 업데이트하고 저장된 식별자 _ 번호를 업데이트하십시오.

나는 도움이

+0

플레이어 측에서 addPeriodicTimeObserverForInterval을 사용하고 각 업데이트에 대해 UDP 메시지를 보내야합니까? 아니면 슬라이더 이동을 시뮬레이트하고 가능한 작은 수정을하기 위해 원격 측의 NSTimer를 사용해야합니까? addPeriodicTimeObserverForInterval을 사용할 때 5 초짜리 비디오에 약 1000 개의 메시지가 있다고 생각합니다. – Luke

+0

당신은 그 많은 메시지를 보낼 필요가 없습니다. 사람들은 5 초 안에 50 건의 업데이트에서 이동하는 세정기와 1000 건의 차이점을 구분할 수 없을 것입니다. 아마도 가장 좋은 방법은 무엇인지 실험 해봐야 할 것입니다. 내 단어는 되감기가 켜져 있지 않으면 스크러버가 뒤로 이동하지 못하게하는 것입니다. 사람들은 스크러버가 느려지거나 가끔씩 멈추는 것을 알아 채지 못하지만, 그렇지 않으면 거꾸로 간다면 알 수 있습니다. 귀하의 솔루션은 두 가지를 조합하여 사용해야합니다. 또한 블루투스는 전력을 사용하므로 메시지를 제한하는 것이 좋습니다. – Bergasms

+0

addPeriodicTimeObserverForInterval의 간격을 사용자 정의 할 수 있다는 것을 알았습니다. 나는 AVPlayerDemo를보고 있었다. 샘플 코드는 슬라이더 너비와 비디오 길이에 따라 간격을 조정합니다. 비디오가 길수록 간격이 길어집니다. 짧은 동영상의 경우 더 많은 간격을 갖게됩니다. 나는 단지 MAX (0.25f, interval)를 예로 들었다. 추가 테스트를 통해 가치가 무엇인지 보여줄 것입니다. – Luke