B2B网络软件

标题: 用AiWork如何写出一个一个播放器呢? [打印本页]

作者: YYPOST群发软件    时间: 昨天 09:14
标题: 用AiWork如何写出一个一个播放器呢?
导入必要的类:MediaPlayer用于播放音频文件,AudioManager用于设置音频流类型,File用于处理文件系统路径。

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

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

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

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

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

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

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


作者: YYPOST群发软件    时间: 昨天 09:15
  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. });
复制代码



作者: YYPOST群发软件    时间: 昨天 09:15
用AiWork如何写出一个一个播放器呢? B2B网络软件

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

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

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

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



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

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

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

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

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

确保在一首歌播放结束后自动切换到下一首。





欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2