我对媒体播放器的使用非常典型,只有在尝试设置播放参数时才会出现问题。
如果我打电话:
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M) {
mMediaPlayer.setPlaybackParams(new PlaybackParams().setSpeed(2.0f));
}
Run Code Online (Sandbox Code Playgroud)
在我调用 mMediaPlayer.start() 之前,播放速度会按预期受到影响,并且不会发生异常。如果我在 mMediaPlayer.start() 调用之后放置 setSpeed() 调用,应用程序将因 illegateStateException 崩溃。
有趣的是,这仅发生在手机(nexus 5,priv)上,但在测试的平板电脑(nexus 7 和 9)上运行良好。
我看到的一些建议提到暂停音频并等待几百毫秒,但没有帮助。
根据文档,在播放音频时设置播放速度是完全可以接受的。有谁知道这里发生了什么?我花了太多时间调查这个。
谢谢!
如果我启动gdb会话并键入:
(gdb) p/x 1024*1024*1024*2
$2 = 0x80000000
Run Code Online (Sandbox Code Playgroud)
但是,如果我超过了32位阈值,我将得到:
(gdb) p/x 1024*1024*1024*4
$3 = 0x0
Run Code Online (Sandbox Code Playgroud)
如何在gdb中显示整个64位值?