나는 안드로이드 튜토리얼 here의 방법을 사용하여 내 모토로라 드로이드 한 비디오를 스트리밍하고있어에서로 비디오를 야기한다. 내가 연주하고 싶은 두 가지 형식과는 다른 동작이 나타납니다. 첫 번째 유형 (youtube lq 3gp)은 정상적으로 재생됩니다. TIOverlay 기능 (그래서 비디오)를 실행하지 않습니다 전에 비디오가 오디오와 동기화의 인출되면 두 번째 유형 (유튜브 본부의 MP4는) 다음, 오디오를 재생하기 시작합니다. 나는 잘 작동하는 모바일 YouTube 사이트에서 재생되는 형식이기 때문에 hq mp4 형식이 내 휴대폰에서 지원된다는 것을 알고 있습니다. 형식에 대한 자세한 내용은 here입니다.안드로이드 MediaPlayer를 지연 표면 무승부 동기화
그래서 내가 하나가 실행하는 TIOverlay을 강제 할 수있는 방법, 또는 그것을 준비하고, 그 시점까지 비디오를 시작하지 수신하는 방법이 필요합니다 같아요. 아래의 일부 logcat 출력은 흐름을 보여줍니다. 두 경우 모두 onPrepared()가 호출 될 때 흥미 롭습니다. 3gp는 onPrepared() 전후에 TIOverlay 호출을하는 것처럼 보이지만 mp4는 이후에만 수행합니다.
편집 : 동일한 코드가 Motorola Droid 3에서 작동하는 것으로 보입니다. 그 비디오 형식이 내 Droid 1의 YouTube에서 작동하는 경우에도 내 앱에서도 작동해야합니다. 나는 조금 버퍼링 될 때까지 동영상을 재생 기다리고했습니다. 이 방법으로 문제를 해결할 수있을뿐만 아니라 비디오를 시작할 때 버퍼가 다시 시작되었습니다.
3GP :
10-25 16:56:26.750: DEBUG/TIOverlay(1103): overlay_createOverlay:IN w=176 h=144 format=22
10-25 16:56:26.946: INFO/Overlay(1103): v4l2_overlay_init:: w=480 h=854
10-25 16:56:26.946: INFO/Overlay(1103): v4l2_overlay_init:: w=176 h=144
10-25 16:56:26.946: INFO/Overlay(1103): v4l2_overlay_init:: w=176 h=144
10-25 16:56:26.961: INFO/Overlay(1103): 8 buffers allocated 4 requested
10-25 16:56:26.961: INFO/Overlay(1103): buffer cookie is 2
10-25 16:56:26.961: INFO/TIOverlay(1103): Opened video1/fd=138/obj=003a2160/shm=135/size=4096
10-25 16:56:26.961: DEBUG/TIOverlay(1103): overlay_createOverlay: OUT
10-25 16:56:26.961: INFO/TIOverlay(1103): Nothing to do!
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=0
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=1
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=2
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=3
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=4
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=5
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=6
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=7
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=0
10-25 16:56:26.969: INFO/TIOverlay(1014): Buffer/0/addr=4140a000/len=53248
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=1
10-25 16:56:26.969: INFO/TIOverlay(1014): Buffer/1/addr=41417000/len=53248
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=2
10-25 16:56:26.969: INFO/TIOverlay(1014): Buffer/2/addr=41424000/len=53248
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=3
10-25 16:56:26.969: INFO/TIOverlay(1014): Buffer/3/addr=41431000/len=53248
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=4
10-25 16:56:26.969: INFO/TIOverlay(1014): Buffer/4/addr=4143e000/len=53248
10-25 16:56:26.969: INFO/Overlay(1014): query buffer, mem=1 type=2 index=5
10-25 16:56:26.969: INFO/TIOverlay(1014): Buffer/5/addr=4144b000/len=53248
10-25 16:56:26.977: DEBUG/TI_Video_Decoder(1014): VIDDEC_SendCommand: Received request from omx client to change state to 2
10-25 16:56:26.985: DEBUG/TI_Video_Decoder(1014): Handle request for state transition: 1 => OMX_StateIdle
10-25 16:56:26.985: DEBUG/d(2220): videosizechanged()
10-25 16:56:27.102: DEBUG/TI_Video_Decoder(1014): OMX_StateIdle state reached
10-25 16:56:27.305: INFO/PlayerDriver(1014): buffering (15)
10-25 16:56:28.235: DEBUG/TI_Video_Decoder(1014): VIDDEC_SendCommand: Received request from omx client to change state to 3
10-25 16:56:28.243: WARN/MediaPlayer(2220): info/warning (1, 44)
10-25 16:56:28.258: INFO/MediaPlayer(2220): Info (1,44)
10-25 16:56:28.258: DEBUG/d(2220): onPrepared()
10-25 16:56:28.282: VERBOSE/BufferAllocOmap34xx(1014): BufferAllocOmap34xx::removeRef()
10-25 16:56:28.290: INFO/Overlay(1014): v4l2_overlay_init:: w=176 h=144
10-25 16:56:28.290: INFO/Overlay(1014): v4l2_overlay_init:: w=176 h=144
10-25 16:56:28.290: INFO/Overlay(1014): v4l2_overlay_init:: w=176 h=144
10-25 16:56:28.290: INFO/Overlay(1014): 8 buffers allocated 4 requested
10-25 16:56:28.290: INFO/Overlay(1014): buffer cookie is 2
10-25 16:56:28.290: INFO/Overlay(1014): query buffer, mem=1 type=2 index=0
10-25 16:56:28.290: INFO/Overlay(1014): query buffer, mem=1 type=2 index=1
10-25 16:56:28.290: INFO/Overlay(1014): query buffer, mem=1 type=2 index=2
10-25 16:56:28.290: INFO/Overlay(1014): query buffer, mem=1 type=2 index=3
10-25 16:56:28.290: INFO/Overlay(1014): query buffer, mem=1 type=2 index=4
10-25 16:56:28.290: INFO/Overlay(1014): query buffer, mem=1 type=2 index=5
10-25 16:56:28.290: INFO/Overlay(1014): query buffer, mem=1 type=2 index=6
10-25 16:56:28.290: INFO/Overlay(1014): query buffer, mem=1 type=2 index=7
10-25 16:56:28.297: INFO/TIOverlay(1014): Postponing Stream Enable/1/0
10-25 16:56:28.297: INFO/Overlay(1014): query buffer, mem=1 type=2 index=0
10-25 16:56:28.297: INFO/TIOverlay(1014): Buffer/0/addr=4140a000/len=53248
10-25 16:56:28.297: INFO/Overlay(1014): query buffer, mem=1 type=2 index=1
10-25 16:56:28.297: INFO/TIOverlay(1014): Buffer/1/addr=41417000/len=53248
10-25 16:56:28.297: INFO/Overlay(1014): query buffer, mem=1 type=2 index=2
10-25 16:56:28.297: INFO/TIOverlay(1014): Buffer/2/addr=41424000/len=53248
10-25 16:56:28.297: INFO/Overlay(1014): query buffer, mem=1 type=2 index=3
10-25 16:56:28.297: INFO/TIOverlay(1014): Buffer/3/addr=41431000/len=53248
10-25 16:56:28.297: INFO/Overlay(1014): query buffer, mem=1 type=2 index=4
10-25 16:56:28.297: INFO/TIOverlay(1014): Buffer/4/addr=4143e000/len=53248
10-25 16:56:28.297: INFO/Overlay(1014): query buffer, mem=1 type=2 index=5
10-25 16:56:28.297: INFO/TIOverlay(1014): Buffer/5/addr=4144b000/len=53248
10-25 16:56:28.891: DEBUG/dalvikvm(2050): GC_EXPLICIT freed 2271 objects/138840 bytes in 229ms
10-25 16:56:28.966: INFO/PlayerDriver(1014): buffering (15)
10-25 16:56:29.930: WARN/MediaPlayer(2220): info/warning (1, 44)
10-25 16:56:30.258: INFO/TIOverlay(1103): Position/X0/Y0/W0/H0
10-25 16:56:30.258: INFO/TIOverlay(1103): Adjusted Position/X0/Y200/W480/H0
10-25 16:56:30.258: INFO/TIOverlay(1103): Rotation/0
10-25 16:56:30.266: INFO/Overlay(1103): v4l2_overlay_set_position:: w=480 h=854
10-25 16:56:30.266: INFO/Overlay(1103): v4l2_overlay_set_position:: w=480 h=392
10-25 16:56:30.266: INFO/Overlay(1103): dumping driver state:
10-25 16:56:30.266: INFO/Overlay(1103): output pixfmt:
10-25 16:56:30.266: INFO/Overlay(1103): w: 176
10-25 16:56:30.266: INFO/Overlay(1103): h: 144
10-25 16:56:30.266: INFO/Overlay(1103): color: 7
10-25 16:56:30.266: INFO/Overlay(1103): UYVY
10-25 16:56:30.266: INFO/Overlay(1103): v4l2_overlay window:
10-25 16:56:30.266: INFO/Overlay(1103): window l: 0
10-25 16:56:30.266: INFO/Overlay(1103): window t: 200
10-25 16:56:30.266: INFO/Overlay(1103): window w: 480
10-25 16:56:30.266: INFO/Overlay(1103): window h: 392
10-25 16:56:30.266: INFO/Overlay(1103): output crop:
10-25 16:56:30.266: INFO/Overlay(1103): crop l: 0
10-25 16:56:30.266: INFO/Overlay(1103): crop t: 0
10-25 16:56:30.266: INFO/Overlay(1103): crop w: 176
10-25 16:56:30.266: INFO/Overlay(1103): crop h: 144
10-25 16:56:30.274: DEBUG/d(2220): surfaceChanged()
10-25 16:56:30.297: DEBUG/d(2220): videosizechanged()
MP4 :
10-25 16:51:57.454: DEBUG/d(2071): onPrepared()
10-25 16:51:58.360: DEBUG/d(2071): surfaceChanged()
10-25 16:52:02.219: DEBUG/TIOverlay(1103): overlay_createOverlay:IN w=640 h=360 format=22
10-25 16:52:02.219: INFO/Overlay(1103): v4l2_overlay_init:: w=480 h=854
10-25 16:52:02.219: INFO/Overlay(1103): v4l2_overlay_init:: w=640 h=360
10-25 16:52:02.219: INFO/Overlay(1103): v4l2_overlay_init:: w=640 h=360
10-25 16:52:02.243: INFO/Overlay(1103): 8 buffers allocated 4 requested
10-25 16:52:02.243: INFO/Overlay(1103): buffer cookie is 2
10-25 16:52:02.250: INFO/TIOverlay(1103): Opened video1/fd=139/obj=00501e18/shm=108/size=4096
10-25 16:52:02.250: DEBUG/TIOverlay(1103): overlay_createOverlay: OUT
10-25 16:52:02.250: INFO/TIOverlay(1103): Position/X0/Y0/W0/H0
10-25 16:52:02.250: INFO/TIOverlay(1103): Adjusted Position/X0/Y200/W480/H0
10-25 16:52:02.250: INFO/TIOverlay(1103): Rotation/0
10-25 16:52:02.250: INFO/Overlay(1103): v4l2_overlay_set_position:: w=480 h=854
10-25 16:52:02.250: INFO/Overlay(1103): v4l2_overlay_set_position:: w=480 h=270
10-25 16:52:02.250: INFO/Overlay(1103): dumping driver state:
10-25 16:52:02.250: INFO/Overlay(1103): output pixfmt:
10-25 16:52:02.250: INFO/Overlay(1103): w: 640
10-25 16:52:02.250: INFO/Overlay(1103): h: 360
10-25 16:52:02.250: INFO/Overlay(1103): color: 7
10-25 16:52:02.250: INFO/Overlay(1103): UYVY
10-25 16:52:02.250: INFO/Overlay(1103): v4l2_overlay window:
10-25 16:52:02.250: INFO/Overlay(1103): window l: 0
10-25 16:52:02.250: INFO/Overlay(1103): window t: 200
10-25 16:52:02.250: INFO/Overlay(1103): window w: 480
10-25 16:52:02.250: INFO/Overlay(1103): window h: 270
10-25 16:52:02.250: INFO/Overlay(1103): output crop:
10-25 16:52:02.250: INFO/Overlay(1103): crop l: 0
10-25 16:52:02.250: INFO/Overlay(1103): crop t: 0
10-25 16:52:02.250: INFO/Overlay(1103): crop w: 640
10-25 16:52:02.250: INFO/Overlay(1103): crop h: 360
10-25 16:52:02.250: INFO/TIOverlay(1103): Postponing Stream Enable/1/0
10-25 16:52:02.266: INFO/Overlay(1014): query buffer, mem=1 type=2 index=0
10-25 16:52:02.266: INFO/Overlay(1014): query buffer, mem=1 type=2 index=1
10-25 16:52:02.266: INFO/Overlay(1014): query buffer, mem=1 type=2 index=2
10-25 16:52:02.266: INFO/Overlay(1014): query buffer, mem=1 type=2 index=3
10-25 16:52:02.266: INFO/Overlay(1014): query buffer, mem=1 type=2 index=4
10-25 16:52:02.274: INFO/Overlay(1014): query buffer, mem=1 type=2 index=5
10-25 16:52:02.274: INFO/Overlay(1014): query buffer, mem=1 type=2 index=6
10-25 16:52:02.274: INFO/Overlay(1014): query buffer, mem=1 type=2 index=7
10-25 16:52:02.282: INFO/Overlay(1014): query buffer, mem=1 type=2 index=0
10-25 16:52:02.282: INFO/TIOverlay(1014): Buffer/0/addr=420f1000/len=462848
10-25 16:52:02.282: INFO/Overlay(1014): query buffer, mem=1 type=2 index=1
10-25 16:52:02.282: INFO/TIOverlay(1014): Buffer/1/addr=4269d000/len=462848
10-25 16:52:02.282: INFO/Overlay(1014): query buffer, mem=1 type=2 index=2
10-25 16:52:02.282: INFO/TIOverlay(1014): Buffer/2/addr=4270e000/len=462848
10-25 16:52:02.282: INFO/Overlay(1014): query buffer, mem=1 type=2 index=3
10-25 16:52:02.282: INFO/TIOverlay(1014): Buffer/3/addr=4277f000/len=462848
10-25 16:52:02.282: INFO/Overlay(1014): query buffer, mem=1 type=2 index=4
10-25 16:52:02.282: INFO/TIOverlay(1014): Buffer/4/addr=427f0000/len=462848
10-25 16:52:02.282: INFO/Overlay(1014): query buffer, mem=1 type=2 index=5
10-25 16:52:02.282: INFO/TIOverlay(1014): Buffer/5/addr=42861000/len=462848
10-25 16:52:02.282: INFO/Overlay(1014): query buffer, mem=1 type=2 index=6
10-25 16:52:02.282: INFO/TIOverlay(1014): Buffer/6/addr=428d2000/len=462848
10-25 16:52:02.282: INFO/Overlay(1014): query buffer, mem=1 type=2 index=7
10-25 16:52:02.289: INFO/TIOverlay(1014): Buffer/7/addr=42943000/len=462848