《Android 弹幕实现 基于B站弹幕的开源系统代码设计.docx》由会员分享,可在线阅读,更多相关《Android 弹幕实现 基于B站弹幕的开源系统代码设计.docx(11页珍藏版)》请在金锄头文库上搜索。
1、Android弹幕实现:基于B站弹幕开源系统(1)Android弹幕实现:基于B站弹幕开源系统(1)如今的视频播放,流行在视频上飘弹幕。这里面做的相对比较成熟、稳定、使用量较多的弹幕系统,当推B站的弹幕系统,B站的弹幕系统已经作为开源项目在github上,其项目地址:https:/ plaincopy1. repositories2. jcenter()3. 4. 5. 6. dependencies7. 8. compilecom.github.ctiao:DanmakuFlameMaster:0.7.39. compilecom.github.ctiao:ndkbitmap-armv7a:
2、0.7.310. 11. 第二步,写一个布局文件,引入B站的弹幕view:htmlview plaincopy1. 2. 6. 7. 12. 13. 18. 19. 24. 25. 30. 31. 36. 37. 41. 42. 第三步,写上层Java代码(该处java代码改造自B站弹幕github上的demo代码):javaview plaincopy1. packagezhangphil.danmaku;2. 3. importandroid.app.Activity;4. importandroid.graphics.Color;5. importandroid.os.Bundle;6.
3、 importandroid.util.Log;7. importandroid.view.View;8. importandroid.widget.Button;9. 10. importjava.util.HashMap;11. 12. importmaster.flame.danmaku.danmaku.model.BaseDanmaku;13. importmaster.flame.danmaku.danmaku.model.DanmakuTimer;14. importmaster.flame.danmaku.danmaku.model.IDisplayer;15. importma
4、ster.flame.danmaku.danmaku.model.android.DanmakuContext;16. importmaster.flame.danmaku.ui.widget.DanmakuView;17. 18. publicclassMainActivityextendsActivity19. 20. privateDanmakuViewmDanmakuView;21. privateDanmakuContextmContext;22. 23. privateAcFunDanmakuParsermParser;24. 25. Override26. protectedvo
5、idonCreate(BundlesavedInstanceState)27. super.onCreate(savedInstanceState);28. setContentView(R.layout.activity_main);29. 30. mDanmakuView=(DanmakuView)findViewById(R.id.danmakuView);31. 32. Buttonshow=(Button)findViewById(R.id.show);33. Buttonhide=(Button)findViewById(R.id.hide);34. ButtonsendText=
6、(Button)findViewById(R.id.sendText);35. Buttonpause=(Button)findViewById(R.id.pause);36. Buttonresume=(Button)findViewById(R.id.resume);37. 38. show.setOnClickListener(newView.OnClickListener()39. Override40. publicvoidonClick(Viewv)41. mDanmakuView.show();42. 43. );44. 45. hide.setOnClickListener(n
7、ewView.OnClickListener()46. Override47. publicvoidonClick(Viewv)48. mDanmakuView.hide();49. 50. );51. 52. sendText.setOnClickListener(newView.OnClickListener()53. Override54. publicvoidonClick(Viewv)55. /每点击一次按钮发送一条弹幕56. sendTextMessage();57. 58. );59. 60. pause.setOnClickListener(newView.OnClickListener()61. Override62. publicvoidonClick(Viewv)63. mDanmakuView.pause();64. 65. );66. 67. resume.setOnClickListener(newView.OnClickListener()68. Override69. publicvoidonClick(Viewv)70. mDanmakuView.resume();71. 72. );73. 74. 75. init();76. 77. 78. privatevoidinit()79. mContext=DanmakuContex