Wednesday, May 21, 2014

ノイズは除去できただけど

大きい音楽ファイルをシークし、その後再生時に”ジッ”というノイズが入る問題。
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