B2B网络软件

 找回密码
 立即注册 审核网站号:QQ:896757558
搜索
查看: 917|回复: 2
打印 上一主题 下一主题

用AiWork如何写出一个一个播放器呢?

[复制链接]

1186

主题

1191

帖子

8021

积分

abc

Rank: 9Rank: 9Rank: 9

积分
8021
跳转到指定楼层
楼主
发表于 2025-1-14 09:14:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
导入必要的类:MediaPlayer用于播放音频文件,AudioManager用于设置音频流类型,File用于处理文件系统路径。

创建MediaPlayer实例:用于控制音频播放。

定义MP3文件列表:mp3List是一个数组,包含了要播放的MP3文件路径。

定义当前播放的文件索引:currentIndex用于跟踪当前正在播放的文件在列表中的位置。

创建活动窗口:包含播放和停止按钮。

播放按钮点击事件:调用playNext函数开始播放音乐。

停止按钮点击事件:调用mediaPlayer.stop()停止播放,并将currentIndex重置为0。

歌曲播放完成监听器:设置OnCompletionListener,当一首歌曲播放完毕后,自动调用playNext播放下一首歌曲。

回复

使用道具 举报

1186

主题

1191

帖子

8021

积分

abc

Rank: 9Rank: 9Rank: 9

积分
8021
沙发
 楼主| 发表于 2025-1-14 09:15:00 | 只看该作者
  1. importClass(android.media.MediaPlayer);
  2. importClass(android.media.AudioManager);
  3. importClass(java.io.File);
  4. importClass(android.widget.Toast);

  5. var mediaPlayer = new MediaPlayer();
  6. var mp3List = ["/sdcard/Pictures/1.mp3", "/sdcard/Music/2.mp3", "/sdcard/Audio/3.mp3"]; // MP3文件列表
  7. var currentIndex = 0; // 当前播放的文件索引
  8. var ac = new activity();

  9. ac.loadSXML(`
  10.     <vertical>
  11.         <button text="播放" id="play"/>
  12.         <button text="停止" id="stop"/>
  13.         <text id="status" text="准备播放..."/>
  14.     </vertical>`);

  15. function playNext() {
  16.     if (currentIndex < mp3List.length) {
  17.         var mp3 = mp3List[currentIndex];
  18.         if (file.isFile(mp3)) {
  19.             try {
  20.                 mediaPlayer.reset(); // 重置MediaPlayer以防止之前的播放状态影响新文件
  21.                 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  22.                 mediaPlayer.setDataSource(mp3);
  23.                 mediaPlayer.prepare();
  24.                 mediaPlayer.start();
  25.                 ac.findViewById("status").setText("正在播放: " + mp3);
  26.                 currentIndex++;
  27.             } catch (e) {
  28.                 Toast.makeText(ac, "错误: " + e.message, Toast.LENGTH_SHORT).show();
  29.                 ac.findViewById("status").setText("错误: " + mp3 + " 播放失败");
  30.             }
  31.         } else {
  32.             Toast.makeText(ac, "错误: 文件 " + mp3 + " 不存在", Toast.LENGTH_SHORT).show();
  33.             ac.findViewById("status").setText("错误: 文件 " + mp3 + " 不存在");
  34.         }
  35.     } else {
  36.         Toast.makeText(ac, "播放结束", Toast.LENGTH_SHORT).show();
  37.         ac.findViewById("status").setText("播放结束");
  38.         mediaPlayer.stop();
  39.         mediaPlayer.release(); // 释放资源
  40.         currentIndex = 0; // 重置索引以便重新开始播放
  41.     }
  42. }

  43. ac.findViewById("play").setOnClickListener(() => {
  44.     Toast.makeText(ac, "播放", Toast.LENGTH_SHORT).show();
  45.     playNext(); // 开始播放第一个或下一个文件
  46. });

  47. ac.findViewById("stop").setOnClickListener(() => {
  48.     Toast.makeText(ac, "停止", Toast.LENGTH_SHORT).show();
  49.     mediaPlayer.stop();
  50.     mediaPlayer.release(); // 释放资源
  51.     ac.findViewById("status").setText("播放停止");
  52.     currentIndex = 0; // 停止后重置播放索引
  53. });

  54. // 添加一个监听器来自动播放下一首
  55. mediaPlayer.setOnCompletionListener(function() {
  56.     playNext(); // 当前歌曲播放完毕后自动播放下一首
  57. });
复制代码


回复 支持 反对

使用道具 举报

1186

主题

1191

帖子

8021

积分

abc

Rank: 9Rank: 9Rank: 9

积分
8021
板凳
 楼主| 发表于 2025-1-14 09:15:16 | 只看该作者
用AiWork如何写出一个一个播放器呢? B2B网络软件

用软件可以写出一个简易的播放器,专门听歌甚至占用内存极少,极度容易的播放器例子。

传到手机只需要播放就可以了。这个如果您希望从一个MP3列表中逐个播放文件,

您可以先创建一个包含所有MP3文件路径的数组,

然后使用循环或递归的方式来遍历并播放这些文件。这里是一个示例代码,展示了如何实现这一功能:



这段代码首先定义了一个mp3List数组,

包含了您想要播放的MP3文件路径。当点击播放按钮时,

它会调用playNext函数尝试播放当前索引指向的MP3文件。

如果播放完毕或者播放出错,则自动处理下一个文件,

直到列表播放完毕。同时,为MediaPlayer添加了一个完成监听器,

确保在一首歌播放结束后自动切换到下一首。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

QQ|»营销软件综合讨论|»营销软件有问必答|»营销软件教程专区|»营销软件POST脚本分享|»营销软件普通脚本分享|»营销软件软件资讯|»营销软件精品软件|»营销软件更新公告|营销软件|B2B软件|B2B网络软件 ( 京ICP备09078825号 )本网站开发的营销软件是一款新的网络营销软件,这款营销可以去网站软件,博客软件,B2B软件,分类信息网发贴,可以抢沙发,可以到百度文库上传WORD文档,可以到一些是相册网站自动上传图片,这个自动发帖软件自带云蜘蛛,加快收录,有6种对接打码接口,方便,效率高,速度快,而且对拖动的验证码全网第一家独家支持,全部原创技术,独家研发,正版原创带版权软件。选择万能营销软件,就选择了一种赚钱的效率,从没有被超越过,一直在努力研发新技术。放飞梦想,解放双手,来点创意,成就你的梦想,就在万能营销软件开始

map2

GMT+8, 2026-10-3 12:31 , Processed in 0.103302 second(s), 33 queries .

快速回复 返回顶部 返回列表