原文链接:http://stackoverflow.com/questions/20087804/should-have-subtitle-controller-already-set-mediaplayer-error-android/20149754#20149754

 1 static MediaPlayer getMediaPlayer(Context context){
 2
 3     MediaPlayer mediaplayer = new MediaPlayer();
 4
 5     if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
 6         return mediaplayer;
 7     }
 8
 9     try {
10         Class<?> cMediaTimeProvider = Class.forName( "android.media.MediaTimeProvider" );
11         Class<?> cSubtitleController = Class.forName( "android.media.SubtitleController" );
12         Class<?> iSubtitleControllerAnchor = Class.forName( "android.media.SubtitleController$Anchor" );
13         Class<?> iSubtitleControllerListener = Class.forName( "android.media.SubtitleController$Listener" );
14
15         Constructor constructor = cSubtitleController.getConstructor(new Class[]{Context.class, cMediaTimeProvider, iSubtitleControllerListener});
16
17         Object subtitleInstance = constructor.newInstance(context, null, null);
18
19         Field f = cSubtitleController.getDeclaredField("mHandler");
20
21         f.setAccessible(true);
22         try {
23             f.set(subtitleInstance, new Handler());
24         }
25         catch (IllegalAccessException e) {return mediaplayer;}
26         finally {
27             f.setAccessible(false);
28         }
29
30         Method setsubtitleanchor = mediaplayer.getClass().getMethod("setSubtitleAnchor", cSubtitleController, iSubtitleControllerAnchor);
31
32         setsubtitleanchor.invoke(mediaplayer, subtitleInstance, null);
33         //Log.e("", "subtitle is setted :p");
34     } catch (Exception e) {}
35
36     return mediaplayer;
37 }

  This code is trying to do the following from the hidden API

1 SubtitleController sc = new SubtitleController(context, null, null);
2 sc.mHandler = new Handler();
3 mediaplayer.setSubtitleAnchor(sc, null)

转载于:https://www.cnblogs.com/laishenghao/p/5161719.html

E/MediaPlayer: Should have subtitle controller already set相关推荐

  1. 【我的Android进阶之旅】解决MediaPlayer播放音乐的时候报错: Should have subtitle controller already set

    文章目录 一.错误描述 二.错误解决 解决方法一 解决方法二 一.错误描述 刚用MediaPlayer播放Music的时候,看到Log打印台总是会打印一条错误日志,MediaPlayer: Shoul ...

  2. Andriod小项目——在线音乐播放器

    Andriod小项目--在线音乐播放器 转载请注明:http://blog.csdn.net/sunkes/article/details/51189189 Android在线音乐播放器 从大一开始就 ...

  3. android闹钟 推迟功能,闹钟延迟76秒才播放音乐

    情况描述:闹钟设置的时间是3点50,但是直到3点51分17秒才播放音乐,延迟了76秒 问题: 1)为什么onReceive方法执行了3次?参见"闹钟执行了"被打印了3次 2)为什么 ...

  4. java telephony jar_java – 不支持的类:com.mediatek.common.telephony.IOnlyOwnerSimSupport

    更新依赖关系后,我在应用程序运行后没有响应 我在logcat中遇到了这个错误 E/MPlugin: Unsupported class: com.mediatek.common.telephony.I ...

  5. Android开发中遇到的错误处理汇总(持续更新)

    ------------------------------------- read the fucking source code-------------------------------- A ...

  6. textureview 缩放_用MediaPlayer+TextureView封装一个完美实现全屏、小窗口的视频播放器...

    原标题:用MediaPlayer+TextureView封装一个完美实现全屏.小窗口的视频播放器 本文作者 本文由xiaoyanger授权发布. xiaoyanger的博客地址: http://www ...

  7. iOS 5 Storyboard 学习之 Tabbar Controller,Navigation Controller

    转载自: http://www.cnblogs.com/buro79xxd/archive/2012/03/07/2383725.html http://www.1000phone.net/threa ...

  8. android 视频播放器 加载字幕,Android 实现视频字幕Subtitle和横竖屏切换示例

    系统自带的VideoView有些视频格式不支持,那么我们可以用第三方实现的VideoView替代系统的来播放视频,比较流行的有ijkplayer.vitamio. 最近有个需求就是需要给视频添加字幕, ...

  9. android media player实现一个可手势滑动控制 + 可以调节分辨率|字幕|倍速的视频播放器(MediaPlayer + ExoPlayer实现)

    文章来自:http://blog.csdn.net/intbird 转载请说明出处 五一第一天在家休息(后续休息有空会进行升级) 看了一下视频播放的相关东西 写了一个简单的触摸视频播放器 (使用 Me ...

最新文章

  1. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】
  2. 【转】C++面试题(四)——智能指针的原理和实现
  3. php在用js_encode()转换时,实现斜杠不转义
  4. Jenkins设置用户权限
  5. centos7 源码编译安装mysql 5.7.21
  6. Python调用MongoDB使用心得
  7. Occlusion(遮挡剔除)
  8. 社区论坛行业搜索最佳实践
  9. Python 爬虫利器 Beautiful Soup 4 之文档树的搜索
  10. 软中断和硬中断的区别
  11. stringwriter_Java StringWriter getBuffer()方法与示例
  12. tsql是mysql中的吗_Mysql中的sql是如何执行的
  13. Linux服务器开发环境搭建 Nginx+PHP+MongoDB
  14. 声纹识别技术如何助力金融反欺诈?
  15. 人民币符号是什么 人民币符号怎么打
  16. 文本数据挖掘实验:文本分类
  17. Python IDE、IDLE 和 Tcl/Tk
  18. How to hide the New! icon or control how long the icon is displayed.
  19. 【已解决】surface 电池不好充电显示“未连接”,将充电的接口换个方向就解决了
  20. 电脑上怎么查看邮件服务器,教您如何查看电子邮件头 -电脑资料

热门文章

  1. hibernate - Transaction not successfully started
  2. 通过onkeydown事件来控制只允许数字
  3. Sqlserver:timestamp数据类型
  4. DP-桥接模式(Bridge Pattern)
  5. 【Vue】—Vue脚手架创建项目时的 linter / formatter config配置选择
  6. 解决VScode安装Babel转码器报错:无法将“cnpm“项识别为cmdlet\函数、脚本文件或可运行程序的名称的问题
  7. HTML+CSS+JS实现计算机功能
  8. 蒲公英枸杞菊花可以一起泡茶喝吗?
  9. 一公顷等于多少平方米
  10. 面对压力,我们可以做什么?