Equalizerを設定している場合に限り発生していたが、結局のところSeekが完了するまで、setEnableでFalseにしておくことで回避することにした。
根本的な解決ではなく回避をした理由であるが、いくつかテストをしてみた結果、大きいファイルの場合はノイズが発生してしまうようだ、これは端末に依存する問題なのかもしれない。しかし、他の端末でテストをしていないのでその点に関しては報告できる情報はもっていない。
これに関しては一応解決したことにする、しかしまた新たな問題が発生している。
発生しているというと、今回対処をしていたノイズの不具合の後に発覚していたように思われるかもしれないが、実は以前から発生していて、こちらも原因を調査しないといけない不具合の一つだった。
説明が後回しになってしまったが、不具合の内容というのは、何度もイコライザーをOn,Offをしているとアプリが強制終了してしまうという、致命的な問題である。
次のログは、強制終了時に発行されるログを抜粋したものだ
05-21 10:37:23.013 2221-2221/jp.co.kayo.android.localplayer3 D/MediaController﹕ AudioSessionId = 856 05-21 10:37:23.063 23929-23961/? D/audio_hw_primary﹕ out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: routing=2 05-21 10:37:23.853 183-183/? W/SurfaceFlinger﹕ couldn't log to binary event log: overflow. 05-21 10:37:24.483 2221-2221/jp.co.kayo.android.localplayer3 A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x00000002 (code=1), thread 2221 (id.localplayer3) 05-21 10:37:24.583 181-181/? I/DEBUG﹕ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 05-21 10:37:24.583 181-181/? I/DEBUG﹕ Build fingerprint: 'google/hammerhead/hammerhead:4.4.2/KOT49H/937116:user/release-keys' 05-21 10:37:24.583 181-181/? I/DEBUG﹕ Revision: '11' <中略> 05-21 10:37:24.843 764-849/? W/InputDispatcher﹕ channel '42675ea8 jp.co.kayo.android.localplayer3/jp.co.kayo.android.localplayer3.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0xd 05-21 10:37:24.843 764-849/? E/InputDispatcher﹕ channel '42675ea8 jp.co.kayo.android.localplayer3/jp.co.kayo.android.localplayer3.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 05-21 10:37:24.843 764-962/? W/MediaFocusControl﹕ RemoteControlClient died 05-21 10:37:24.843 1822-1897/? V/Avrcp﹕ New genId = 111, clearing = 1 05-21 10:37:24.843 764-962/? W/MediaFocusControl﹕ AudioFocus audio focus client died 05-21 10:37:24.843 764-962/? I/MediaFocusControl﹕ AudioFocus removeFocusStackEntry(): removing entry for android.os.BinderProxy@42c7ea90 05-21 10:37:24.843 764-2017/? W/InputDispatcher﹕ Attempted to unregister already unregistered input channel '42675ea8 jp.co.kayo.android.localplayer3/jp.co.kayo.android.localplayer3.MainActivity (server)' 05-21 10:37:24.843 1822-1897/? V/Avrcp﹕ New genId = 112, clearing = 1 05-21 10:37:24.843 23929-23963/? W/AudioPolicyManagerBase﹕ unregisterEffect() unknown effect ID 857 05-21 10:37:24.843 764-1054/? I/ActivityManager﹕ Process jp.co.kayo.android.localplayer3 (pid 2221) has died. 05-21 10:37:24.843 764-2017/? I/WindowState﹕ WIN DEATH: Window{42675ea8 u0 jp.co.kayo.android.localplayer3/jp.co.kayo.android.localplayer3.MainActivity} 05-21 10:37:24.853 764-1054/? W/ActivityManager﹕ Force removing ActivityRecord{4268c988 u0 jp.co.kayo.android.localplayer3/.MainActivity t51}: app died, no saved state 05-21 10:37:24.873 186-186/? D/Zygote﹕ Process 2221 terminated by signal (11) 05-21 10:37:26.083 764-962/? W/InputMethodManagerService﹕ Got RemoteException sending setActive(false) notification to pid 2221 uid 10138 05-21 10:37:26.093 976-987/? W/Binder﹕ Caught a RuntimeException from the binder stub implementation. java.lang.NullPointerException at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280) at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129) at android.os.Binder.execTransact(Binder.java:404) at dalvik.system.NativeStart.run(Native Method)
あまりに長いので途中は略したが、中身はダンプログになっている。
現時点の考えでは、MediaPlayerを2つもち、それを交互の使用していることと、Equalizerに設定するaudioSessionIdに問題が起因しているのではないかと考えている。
今日の作業はまず状況を整理してみようとおもう。
No comments:
Post a Comment