google / ExoPlayer

This project is deprecated and stale. The latest ExoPlayer code is available in https://github.com/androidx/media
https://developer.android.com/media/media3/exoplayer
Apache License 2.0
21.71k stars 6.02k forks source link

MTK TV devices - PlayerActivity ANR after pressing menu button #7881

Closed manluo-MTK closed 3 years ago

manluo-MTK commented 4 years ago

[REQUIRED] Issue description

EXOPLAYER Can't respond Direction/Enter etc key after press Menu key several times at playback page. exoplayer lose focus, and new 1*1 surface . Does exoplayer do something when press menu button?

[REQUIRED] Reproduction steps

• Reproduction steps 1.open exoplayer 2.choose any video play 3.pause playback 4.press MENU button on RC or input "adb shell input keyevent 82 " many times, sometime twice . [Actual Result] App hang.press other key ,no response.

[REQUIRED] Link to test content

any movie in playlist

[REQUIRED] A full bug report captured from the device

detail log send to mail. 09-10 03:28:22.897 3404 3614 I InputDispatcher: Application is not responding: AppWindowToken{f49212b token=Token{7d7357a ActivityRecord{3a0bda5 u0 com.google.android.exoplayer2.demo/.PlayerActivity t389}}}. It has been 5015.4ms since event, 5004.6ms since wait started. Reason: Waiting because no window has focus but there is a focused application that may eventually add a window when it finishes starting up. 09-10 03:28:22.898 3404 3614 I WindowManager: Input event dispatching timed out . Reason: Waiting because no window has focus but there is a focused application that may eventually add a window when it finishes starting up. 0xaa331d40: 0.12 KiB | 1 ( 32) x 1 | 1 | 1 | 0x20000b00 | SubPanel:com.google.android.exoplayer2.demo/com.google.android.exoplayer2.demo.PlayerActivity#0 0xaa331e80: 0.12 KiB | 1 ( 32) x 1 | 1 | 1 | 0x20000b00 | SubPanel:com.google.android.exoplayer2.demo/com.google.android.exoplayer2.demo.PlayerActivity#0

[REQUIRED] Version of ExoPlayer being used

not-ok version: 2.11.4 but old version v1.5.15 is ok

[REQUIRED] Device(s) and version(s) of Android being used

MTK android TV Q

manluo-MTK commented 4 years ago

if you need more information, please tell me.

kim-vde commented 4 years ago

I tried to reproduce on a phone and on an Android TV emulator but I couldn’t (I don’t have any TV to test).

Have you been able to reproduce on any other device? It could be a device specific issue.

Maybe @marcbaechinger will have move input on what might be causing this.

manluo-MTK commented 4 years ago

hi kim-vde

kim-vde commented 4 years ago

I think the next step would be to test on a non-MTK TV to:

  1. check whether it is MTK specific, and
  2. if not, be able to debug the issue to see where it comes from.

I am afraid we don't have easy access to TV devices with the current WFH situation so it might take some time before we are able to test.

ojw28 commented 3 years ago

I was unable to reproduce this on a couple of non-MTK TV boxes that I have available for testing, so it does appear to be device or MTK specific. I do not have an MTK TV box to test on.

In most cases where the PlayerActivity ends up hanging in this way, it's because a call to one of the underlying media components (probably MediaCodec) has hung. Bug reports normally include stack traces for all threads at the last ANR< which allows you to see if this is the case, and if it is, exactly which call has hung. The bug report provided via email does not seem to have this section (it also seems to be unusually short). I'm not sure, but it's possible that this is because you generated the bug report in a deprecated way, as per the very top of the bug report provided:

WARNING: flat bugreports are deprecated, use adb bugreport <zip_file> instead

Next steps for you would probably be to try and capture a bug report that includes this information, and then look at the stack trace of the thread called ExoPlayer:Playback to see if it's hung in a call to the platform. If it is, then that's the root cause. If it's not, please provide the complete bug report via email for us to take a look (please update this issue if/when you've done this).

manluo-MTK commented 3 years ago

hi thank for your help. I catch a new bugreport again. form the report, it seem not hang in the ExoPlayer:Playback or media components.

"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x71bfaab0 self=0xb133de00
  | sysTid=8341 nice=0 cgrp=default sched=0/0 handle=0xb1895dc0
  | state=S schedstat=( 383743109 1677207567 1488 ) utm=25 stm=12 core=3 HZ=100
  | stack=0xbe67b000-0xbe67d000 stackSize=8192KB
  | held mutexes=
  kernel: (couldn't read /proc/self/task/8341/stack)
  native: #00 pc 0005a798  /apex/com.android.runtime/lib/bionic/libc.so (syscall+28)
  native: #01 pc 000e44e5  /apex/com.android.runtime/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+80)
  native: #02 pc 00416941  /apex/com.android.runtime/lib/libart.so (_ZN3artL12GoToRunnableEPNS_6ThreadE.llvm.12260782946460364788+324)
  native: #03 pc 004167d5  /apex/com.android.runtime/lib/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+8)
  at android.os.BinderProxy.transactNative(Native method)
  at android.os.BinderProxy.transact(BinderProxy.java:510)
  at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
  at android.content.ContentResolver.query(ContentResolver.java:944)
  at android.content.ContentResolver.query(ContentResolver.java:880)
  at android.content.ContentResolver.query(ContentResolver.java:836)
  at aeuy.a(:com.google.android.gms@20104073@20.1.04 (080306-288960190):24)
  at ahgv.a(:com.google.android.gms@20104073@20.1.04 (080306-288960190):-1)
  at ahgs.a(:com.google.android.gms@20104073@20.1.04 (080306-288960190):1)
  at ahgx.b(:com.google.android.gms@20104073@20.1.04 (080306-288960190):1)
  at ahhl.e(:com.google.android.gms@20104073@20.1.04 (080306-288960190):5)
  at ahhl.c(:com.google.android.gms@20104073@20.1.04 (080306-288960190):5)
  - locked <0x02ec5349> (a ahhe)
  at axzu.b(:com.google.android.gms@20104073@20.1.04 (080306-288960190):-1)
  at mch.<init>(:com.google.android.gms@20104073@20.1.04 (080306-288960190):2)
  at mbw.a(:com.google.android.gms@20104073@20.1.04 (080306-288960190):7)
  - locked <0x0375e44e> (a java.lang.Class<mbw>)

  "Loader:DashMediaSource" prio=5 tid=5 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x31180318 self=0xb3d42400
  | sysTid=17236 nice=0 cgrp=default sched=0/0 handle=0x8553f230
  | state=S schedstat=( 75432334 2260665 71 ) utm=7 stm=0 core=2 HZ=100
  | stack=0x8543c000-0x8543e000 stackSize=1040KB
  | held mutexes=
  at sun.misc.Unsafe.park(Native method)
  - waiting on an unknown object

it is hard to figure out what is root cause. pleas help. the new bugreport had mailed to dev.exoplayer@gmail.com

manluo-MTK commented 3 years ago

https://user-images.githubusercontent.com/70946784/103994299-c29cc200-51d1-11eb-9c6f-00af3f44508f.mp4

exoplayer version:2.12.0

ojw28 commented 3 years ago

The ANR doesn't appear to be in the ExoPlayer demo app's process. It looks like the ANR is occurring in com.google.android.gms.unstable. Closing, since this issue does not seem to be related to ExoPlayer.