当前位置: 首页 > news >正文

通许画册设计网站宁波网络推广渠道有哪些

通许画册设计网站,宁波网络推广渠道有哪些,备案的博客网站可以做别的吗,网上营销是做什么的关于音乐播放器#xff0c;我真的是接触比较多#xff0c;听歌作为我第一大爱好#xff0c;之前也用Java设计过音乐播放器#xff0c;感兴趣的同学可以阅读#xff1a;Android Studio如何实现音乐播放器#xff08;简单易上手#xff09;和 Android Studio实现音乐播放器… 关于音乐播放器我真的是接触比较多听歌作为我第一大爱好之前也用Java设计过音乐播放器感兴趣的同学可以阅读Android Studio如何实现音乐播放器简单易上手和 Android Studio实现音乐播放器2.0 一、实验目的 理论知识 掌握Kotlin面向对象的软件开发方面的基础知识。巩固前期Activity、UI控件的使用。掌握Service和BroadcastReceiver的特点及用法。 专业技能 熟悉Android软件开发环境并掌握具体的工具的使用。掌握Service和BroadcastReceiver组件的使用。掌握移动应用软件分析和设计方法并能将其运用到工程实践当中。 职业素养 逐步形成系统的设计的思想具有一定的创新精神。养成良好的编程习惯。 二、实验内容 根据Service及BroadcastReceiver的知识讲解和案例使用实现一个Android音乐播放器强化对服务与广播的理解。要求能实现音乐的播放暂停上一首下一首等功能。要求 巩固Android应用开发工具Eclipse或者Android Studio的常规用法巩固Activity、UI控件的常规用法掌握Service和BroadcastReceiver的编程要点理解MediaPlayer的使用。 三、实验步骤 1、页面布局 先考虑下简单音乐播放器的元素那肯定是播放暂停停止上一首和下一首了。 父布局是RelativeLayout然后是ListView显示歌单接下去就是Button按键了没什么需要讲的都过于基础。 ?xml version1.0 encodingutf-8? RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityListViewandroid:idid/lv_musicandroid:layout_widthmatch_parentandroid:layout_height500dp/LinearLayoutandroid:idid/ll_playandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalandroid:layout_belowid/lv_musicandroid:layout_marginTop20dpButtonandroid:idid/btn_startandroid:layout_width0dpandroid:layout_weight1android:text开始播放android:textSize20spandroid:gravitycenterandroid:layout_margin5dpandroid:backgrounddrawable/btn_selectorandroid:layout_heightmatch_parent/Buttonandroid:idid/btn_pauseandroid:layout_width0dpandroid:layout_weight1android:text暂停播放android:textSize20spandroid:gravitycenterandroid:layout_margin5dpandroid:backgrounddrawable/btn_selectorandroid:layout_heightmatch_parent/Buttonandroid:idid/btn_stopandroid:layout_width0dpandroid:layout_weight1android:text停止播放android:textSize20spandroid:gravitycenterandroid:layout_margin5dpandroid:backgrounddrawable/btn_selectorandroid:layout_heightmatch_parent//LinearLayoutLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalandroid:layout_belowid/ll_playandroid:layout_marginTop20dpButtonandroid:idid/btn_preandroid:layout_width0dpandroid:layout_weight1android:text上一首android:textSize20spandroid:gravitycenterandroid:layout_margin5dpandroid:backgrounddrawable/btn_selectorandroid:layout_heightmatch_parent/Buttonandroid:idid/btn_nextandroid:layout_width0dpandroid:layout_weight1android:text下一首android:textSize20spandroid:gravitycenterandroid:layout_margin5dpandroid:backgrounddrawable/btn_selectorandroid:layout_heightmatch_parent//LinearLayout/RelativeLayout2、音乐服务 其实播放音乐只需要MediaPlayer和start、resume等方法就行几行代码解决。但Service越来越需要音乐播放器来体现出来作为四大组件之一Service从来不露脸借助Activity来发挥自己的才能。是四大组件里面和Content Provider一样低调的人。 首先定义mediaPlayer对象。然后重写 onCreate()方法在里面给mediaPlayer初始化和initMediaPlayer()init的方法中就是打开assets文件夹下的音乐调用setDataSource()设置数据源然后prepare()准备就绪。 private lateinit var mediaPlayer:MediaPlayerprivate var index 0override fun onCreate() {super.onCreate()mediaPlayer MediaPlayer()initMediaPlayer()}fun initMediaPlayer() {val assetManager assetsvar fileName music index .mp3var fd assetManager.openFd(fileName)mediaPlayer.setDataSource(fd.fileDescriptor, fd.startOffset, fd.length)mediaPlayer.prepare()}既然要通过Service实现音乐服务那么就要控制音乐播放在MusicService类中定义一个内部类MusicControl。它继承自Binder里面只有成员方法而且都没有返回值其实就是对mediaplaer的方法进行了封装。start()、pause()、reset()全局变量index是歌曲下标在切换上下首时调用。 inner class MusicControl:Binder() {fun playMusic() {if (!mediaPlayer.isPlaying) {mediaPlayer.start()}}fun pasueMusic() {if (mediaPlayer.isPlaying) {mediaPlayer.pause()}}fun stopMusic() {if (mediaPlayer.isPlaying) {mediaPlayer.reset()initMediaPlayer()}}fun prePlay() {// 循环播放前一首index (index 5) % 6// 如果正在播放则重置播放器if (mediaPlayer.isPlaying) {mediaPlayer.reset()}initMediaPlayer()mediaPlayer.start()}fun nextPlay() {// 循环播放下一首index (index 7) % 6// 如果正在播放则重置播放器if (mediaPlayer.isPlaying) {mediaPlayer.reset()}initMediaPlayer()mediaPlayer.start()}}3、音乐播放 创建适配器使用默认的simple_list_item_1显示一行歌曲名就行。如果你想自定义加上其他的歌曲元素可以自己创建一个适配器和子项布局文件。这里讲解的重点是Service和Activity进行绑定。 override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)val adapter ArrayAdapterString(this, android.R.layout.simple_list_item_1, musicList)binding.lvMusic.adapter adapter// 定义意图对象绑定服务自动创建musicIntent Intent(this, MusicService::class.java)bindService(musicIntent, musicConnection, BIND_AUTO_CREATE)initView()}首先MainActivity里面还需要定义个内部类MusicConnection用于连接MusicService的内部类继承自ServiceConnection重写的分类方法中只是在连接上服务的时候将iBinder赋值给musicControl。这里musicControl就是MusicService的内部类对应的对象。 lateinit var musicControl:MusicService.MusicControlinner class MusicConnection:ServiceConnection {override fun onServiceConnected(p0: ComponentName?, p1: IBinder?) {musicControl p1 as MusicService.MusicControl}override fun onServiceDisconnected(p0: ComponentName?) {}}下面我们就用初始化好的MusicConnection对象来连接MainActivity和MusicService。很简单的两句就好了。 musicIntent Intent(this, MusicService::class.java)bindService(musicIntent, musicConnection, BIND_AUTO_CREATE)下面我们设置下按钮的点击事件其实就是直接调用musicControl对象的方法。 override fun onClick(p0: View?) {when(p0?.id) {R.id.btn_start-{musicControl.playMusic()}R.id.btn_pause-{musicControl.pasueMusic()}R.id.btn_stop-{musicControl.stopMusic()}R.id.btn_pre-{musicControl.prePlay()}R.id.btn_next-{musicControl.nextPlay()}}}四、运行演示 打开就是主页面点击开始播放从第一首开始然后可以暂停播放再点开始播放就是继续播放随时停止播放上一首和下一首也无比流畅。 五、实验总结 这已经是第四次做音乐播放器了这次做的也是最快的也可能是简单的原因没加什么复杂内容其实如果是从音乐文件的数据库中读取再播放我觉得就要花些时间了。或者从SD卡中读文件也是不错的想法感兴趣的同学可以尝试挑战。 源代码已上传CSDN
http://www.w-s-a.com/news/728748/

相关文章:

  • 网站建设:上海珍岛网页版qq空间登录
  • 网站服务器ipteahouse wordpress主题
  • 深州市住房保障和城乡建设局网站做网站公司叫什么
  • 织梦网站转跳手机站注册公司代理记账费用
  • wordpress建站Pdf亚马逊aws在线观看
  • 做网站的外包公司有哪些WordPress调用json数据
  • 做网站网站怎么赚钱网站的建设及维护报告
  • 可以做效果图的网站东莞网站优化什么方法
  • 网站和软件的区别怎么做招生网站
  • 雄安免费网站建设电话如何做网站推广 求指点
  • 十大免费cad网站入口软件北京做网站建设价格
  • 建设一个公司网站要具备什么网页制作的专业
  • 东莞seo建站排名全包网站
  • 网站建设的基本步骤有哪些软件商店下载官方
  • 网站建设开发报告论文hao123上网从这里开始官方
  • 阿里云建网站费用徐州房产网
  • 网站统计分析平台做企业礼品的网站
  • 做可视化图表的网站wordpress批量导入tag
  • txt怎么做网站网站的链接结构包括
  • 适合平面设计师的网站网络营销专员的就业前景
  • 好订单网服装加工接单谷歌seo网站推广怎么做
  • seo泛站群外贸网站建设团队
  • 网站免费维护建立网站国家城乡建设部投诉网站
  • 企业网站必须备案吗wordpress导入数据库依然无法链接
  • 浅谈高校网站群的建设网站不支持m.域名
  • 和平网站建设公司做实验教学视频的网站
  • 音乐网站源码带手机版WordPress菜单调用不出
  • 昆明网站设计都需要设计什么网络推广岗位职责和任职要求
  • 国外公司网站模板网站建设公司选择意见书
  • 如何创建一个网站卖东西郑州 网站建设公司