Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在播放流时避免Android Media Player中的15秒延迟/缓存大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在实现一个从远程计算机播放流的媒体播放器.通过我的应用程序,我可以控制远程机器(例如寻求秒).像魅力一样工作,但是: Android Media Player缓冲一些疯狂的10-15秒(!!),这意味着每次点击(‘搜索’)需要10-15秒才能生效,即使它不到一秒钟直到新的数据到了.

我的问题:有没有办法控制(限制)缓存?或者我只是做错了什么?我是唯一有此问题的人吗?

我的代码非常简单:

player = new MediaPlayer()
player.setDatasource(url);
player.setOnPreparedListener(new OnPreparedListener() {

    public void onPrepared(MediaPlayer mp) {
        mp.start();
    }
});
player.prepareAsync();

更新:
我使用本地自建的迷你http服务器将我的字节流连接到Androids媒体播放器.在这种情况下,似乎Android DRM正在延迟/缓存.仍然不太清楚为什么(如果我连接到托管文件的IIS,为什么不).也不知道如何解决这个问题.

欢迎投入!

谢谢!
丹尼尔

解决方法

好的,同时我更接近解决方案.原来我的问题来源是Android DRM! (不,我没有播放受保护的文件.它的标准mp3).

DRM似乎已经在Android 3.1中引入(我在Galaxy Tab 10.1上进行了测试).它在仿真器上工作正常(可能没有在那里实现DRM?)

知道如何禁用或加速这个吗?似乎有一个10秒的计时器位于Android DRM impl的某个深处等待 – 无论如何,不​​知道.我的错误日志:

10-06 17:38:19.020: ERROR/MediaExtractor(226): **********MediaExtractor::Create
10-06 17:38:19.020: ERROR/IDrmManagerservice(NativE)(226): add uniquEID
10-06 17:38:19.020: ERROR/IDrmManagerservice(NativE)(225): Entering BnDrmManagerservice::ontransact with code 1
10-06 17:38:19.020: ERROR/IDrmManagerservice(NativE)(225): BnDrmManagerservice::ontransact :ADD_UNIQUEID
10-06 17:38:19.020: ERROR/IDrmManagerservice(NativE)(225): Entering BnDrmManagerservice::ontransact with code 3
10-06 17:38:19.020: ERROR/IDrmManagerservice(NativE)(225): BnDrmManagerservice::ontransact :ADD_CLIENT
10-06 17:38:19.020: ERROR/IDrmManagerservice(NativE)(226): Entering BpDrmManagerservice::openDecryptSession
10-06 17:38:19.020: ERROR/IDrmManagerservice(NativE)(225): Entering BnDrmManagerservice::ontransact with code 27
10-06 17:38:19.020: ERROR/IDrmManagerservice(NativE)(225): BnDrmManagerservice::ontransact :OPEN_DECRYPT_SESSION_FROM_URI
10-06 17:38:19.020: ERROR/DrmManagerservice(NativE)(225): Entering DrmManagerservice::openDecryptSession with uri

10 seconds wait

10-06 17:38:29.040: ERROR/DrmManager(NativE)(225): DrmManager::openDecryptSession: no capable plug-in found
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(225): NULL decryptHandle is returned
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(226): no decryptHandle is generated in service side
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(226): remove uniquEID
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(225): Entering BnDrmManagerservice::ontransact with code 2
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(225): BnDrmManagerservice::ontransact :rEMOVE_UNIQUEID
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(225): Entering BnDrmManagerservice::ontransact with code 4
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(225): BnDrmManagerservice::ontransact :rEMOVE_CLIENT
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(226): setDrmserviceListener
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(225): Entering BnDrmManagerservice::ontransact with code 5
10-06 17:38:29.040: ERROR/IDrmManagerservice(NativE)(225): BnDrmManagerservice::ontransact :SET_DRM_serviCE_LISTENER
10-06 17:38:29.040: ERROR/DrmManagerservice(NativE)(225): Entering setDrmserviceListener

大佬总结

以上是大佬教程为你收集整理的如何在播放流时避免Android Media Player中的15秒延迟/缓存全部内容,希望文章能够帮你解决如何在播放流时避免Android Media Player中的15秒延迟/缓存所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。