Android MediaPlayer - setPlaybackParams 引发安全异常

Android MediaPlayer - setPlaybackParams throws a security exception

我正在尝试通过以下代码块播放视频 faster/slower。

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            socket.send(positionID + ":playState:ready:empty");
            player = mp;
            player.setPlaybackParams(new PlaybackParams().setSpeed(1.0f));
        }
    });

我现在将'1'作为参数传递只是为了测试,这应该是正常的播放速度。但是无论我传递什么数字,我都会收到以下错误。

01-04 18:49:17.308 24548-24548/com.spectiv.slave E/AndroidRuntime: FATAL EXCEPTION: main
                                                               Process: com.spectiv.slave, PID: 24548
                                                               java.lang.SecurityException
                                                                   at android.media.MediaPlayer.setPlaybackParams(Native Method)
                                                                   at com.spectiv.slave.videoActivity.onPrepared(videoActivity.java:80)
                                                                   at android.widget.VideoView.onPrepared(VideoView.java:432)
                                                                   at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:2830)
                                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                   at android.os.Looper.loop(Looper.java:148)
                                                                   at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我的目标是 API 级别 23,编译后的 SDK 版本为 24,我是 运行 Odroid C2 上的应用程序。非常感谢任何帮助。


EDIT - 这个错误不会发生在模拟器上。我不知道这个 Odroid C2 上的 Android 运行 有什么不同。他们都是棉花糖。

我会尝试

player.setPlaybackParams(player.getPlaybackParams().setSpeed(1.0f))

假设在没有设置播放参数的情况下播放视频

只是想把这个作为任何搜索的答案。该错误仅发生在这个特定的硬件 (Odroid C2) 上。 运行 模拟器中的代码有效。

我在 C2 上遇到了同样的问题。 尝试发布片段的媒体播放器 onDestroyView() 函数。 或者更快地发布媒体播放器。

出现是因为之前的媒体播放器没有正确发布

您还没有启动媒体播放器..

player = mp;
 player .start()
        player.setPlaybackParams(new PlaybackParams().setSpeed(1.0f));