iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java音乐播放器实现代码
  • 251
分享到

java音乐播放器实现代码

java播放器ava 2023-05-31 12:05:08 251人浏览 八月长安
摘要

本文实例为大家分享了java音乐播放器的具体代码,供大家参考,具体内容如下这个是源码结构介绍这个是界面,有点简陋,见笑了,但是基本上的东西都有了,没办法,没有美工的程序写的界面直接上源代码Player.javapackage com.ser

本文实例为大家分享了java音乐播放器的具体代码,供大家参考,具体内容如下

这个是源码结构介绍

java音乐播放器实现代码

这个是界面,有点简陋,见笑了,但是基本上的东西都有了,没办法,没有美工的程序写的界面

java音乐播放器实现代码

直接上源代码Player.java

package com.service; import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.Random; import javax.sound.sampled.*;import javax.swing.jslider;import javax.swing.JTable;import com.list.MusicList;import com.list.ThreadList;import com.list.ViewList;import com.model.Model;import com.model.Music;import com.view.View; public class Player extends Thread{  private Player p; private long time = 0;  Object lock = new Object();//一个空的对象,没什么意义  private boolean paused = false;// 暂停 继续   public boolean isPaused() { return paused; } public void setPaused(boolean paused) { this.paused = paused; }  private JSlider jSliderPlayProgress;//播放进度条 private boolean over = false;//开始 结束  //是否自动播放下一曲 private boolean isNext=true;   private Music music;//音乐   AudioInputStream din = null; SourceDataLine line=null;  private FloatControl volume = null; private JSlider jSliderVolume;   public JSlider getjSliderVolume() { return jSliderVolume; } public void setjSliderVolume(JSlider jSliderVolume) { this.jSliderVolume = jSliderVolume;   } public Player(JSlider jSliderVolume,JSlider jSliderPlayProgress) { super(); this.jSliderVolume = jSliderVolume; this.jSliderPlayProgress=jSliderPlayProgress; } public Music getMusic() { return music; } public void setMusic(Music music) { this.music = music; }  public FloatControl getVolume(){  return volume; }   //播放音乐 public void run(){  AudioInputStream in=null;  try {    File file = new File(music.getPath());   //播放不了的歌曲,直接下一首,并且在音乐列表中删除  try {   in = AudiOSystem.getAudioInputStream(file);  } catch (Exception e) {  //删除有点小问题  MusicList.getList().remove(music.getId());    ViewList.getList().get(0).getJt().setModel(new Model());      nextmusic();  }    AudioFORMat baseFormat = in.getFormat();  AudioFormat decodedFormat = new AudioFormat(   AudioFormat.Encoding.PCM_SIGNED,   baseFormat.getSampleRate(), 16, baseFormat.getChannels(),   baseFormat.getChannels() * 2, baseFormat.getSampleRate(),   false);  if(baseFormat.getEncoding()==AudioFormat.Encoding.PCM_UNSIGNED || baseFormat.getEncoding()==AudioFormat.Encoding.ULAW ||   baseFormat.getEncoding()==AudioFormat.Encoding.ALAW || baseFormat.getEncoding()==AudioFormat.Encoding.PCM_SIGNED){    time=(file.length()*8000000)/((int)(decodedFormat.getSampleRate()*baseFormat.getSampleSizeInBits()));  }else{   int bitrate=0;   if(baseFormat.properties().get("bitrate")!=null){    //取得播放速度(单位位每秒)    bitrate=(int)((Integer)(baseFormat.properties().get("bitrate")));    if(bitrate!=0)    time=(file.length()*8000000)/bitrate;   }     }      din = AudioSystem.getAudioInputStream(decodedFormat, in);  DataLine.Info info = new DataLine.Info(SourceDataLine.class, decodedFormat);  line = (SourceDataLine) AudioSystem.getLine(info);  line.open();  setVolume();  jSliderPlayProgress.setMaximum((int)time);  jSliderPlayProgress.setValue(0);  if(line!=null){  line.open(decodedFormat);  byte[] data = new byte[4096];  int nBytesRead;    synchronized (lock) {  while ((nBytesRead = din.read(data, 0, data.length)) != -1) {   while (paused) {   if(line.isRunning()) {    line.stop();    System.out.println("暂停");   }   try {    lock.wait();    System.out.println("等待");   }   catch(InterruptedException e) {   }   }   if(!line.isRunning()&&!over) {   System.out.println("开始播放");   line.start();      }      if (over&&line.isRunning()) {   System.out.println("停止播放");   jSliderPlayProgress.setValue(0);   isNext=false;   line.drain();   line.stop();   line.close();   }      jSliderPlayProgress.setValue((int)line.getMicrosecondPosition());   line.write(data, 0, nBytesRead);  }   //根据播放模式选择下一首歌  nextmusic();  }   }  } catch(Exception e) {  e.printStackTrace(); } finally {  if(din != null) {  try { din.close(); } catch(IOException e) { }  } } }  //设置播放器滚动条 public void setVolume() { if(line!=null) {  if(line.isControlSupported(FloatControl.Type.MASTER_GAIN))  {  jSliderVolume.setEnabled(true);  volume= (FloatControl)line.getControl( FloatControl.Type.MASTER_GAIN );  jSliderVolume.setMinimum((int)volume.getMinimum());  jSliderVolume.setMaximum((int)volume.getMaximum());  //jSliderVolume.setValue((int)(volume.getMinimum()+(4*(volume.getMaximum()-volume.getMinimum()))/5));  volume.setValue((float)(volume.getMinimum()+(4*(volume.getMaximum()-volume.getMinimum()))/5));  } } else {  volume=null;  jSliderVolume.setEnabled(false); }  } private void nextmusic() { String mode=Setting.getMode(); if (isNext&&!mode.equals("one")) {//单曲播放就不执行  int nextid=0;//将要播放的id  int currentid=Integer.parseInt(this.music.getId());  System.out.println(mode);  if (mode.equals("default")&&(currentid==MusicList.getList().size()-1)){  return;  }    if (mode.equals("rand")) {   Random random = new Random();   nextid=Math.abs(random.nextInt())%MusicList.getList().size();  }else if (mode.equals("onecircle")) {  nextid=currentid;  }else if (mode.equals("default")&&!(currentid==MusicList.getList().size()-1)) {   nextid=currentid+1;  }else if (mode.equals("morecircle")) {    nextid=(currentid==MusicList.getList().size()-1)?0:currentid+1;  }  JTable jTable=ViewList.getList().get(0).getJt();  if(nextid==0){//第一个    jTable.setRowSelectionInterval(0,0);    }else {   jTable.setRowSelectionInterval(nextid-1,nextid);   }   this.stopplay();   ThreadList.getList().clear();   p=new Player(jSliderVolume,jSliderPlayProgress);   p.setMusic(MusicList.getList().get(nextid));   ThreadList.getList().add(p);   p.start(); } }  //开始 public void startplay(){ over=false; }   //停止  public void stopplay(){ over=true; }   // 暂停 public void userPressedPause() { paused = true; }  //继续 public void userPressedPlay() {  synchronized(lock) {   paused = false;   lock.notifyAll(); } }  public void Pause(){ if (paused) {  synchronized(lock) {   paused = false;   lock.notifyAll();   } }else{  paused = true; }  }   }

--结束END--

本文标题: java音乐播放器实现代码

本文链接: https://www.lsjlt.com/news/225752.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java音乐播放器实现代码
    本文实例为大家分享了java音乐播放器的具体代码,供大家参考,具体内容如下这个是源码结构介绍这个是界面,有点简陋,见笑了,但是基本上的东西都有了,没办法,没有美工的程序写的界面直接上源代码Player.javapackage com.ser...
    99+
    2023-05-31
    java 播放器 ava
  • css音乐播放器代码
    下面是一个简单的CSS音乐播放器代码示例:HTML代码:```html播放暂停...
    99+
    2023-09-20
    css
  • 简单实现java音乐播放器
    学习过java语言的你,或多或少,在某天突发奇想,想着用swing做一个音乐播放器。但是,发现很难找到,相关的java代码,或者你下载的代码有问题,或者你代码里面引入的类包找不到。为了解决自如此类的问题。在这儿,有如下的代码可以供大家参考。...
    99+
    2023-05-31
    java 播放器 ava
  • java实现播放背景音乐
    本文实例为大家分享了java实现播放背景音乐的具体代码,供大家参考,具体内容如下 测试源码 播放背景音乐类 package forGame; import javax.soun...
    99+
    2024-04-02
  • Qt5+QMediaPlayer实现音乐播放器的示例代码
    以下是一个使用Qt5和QMediaPlayer实现音乐播放器的示例代码:```cpp#include #include class ...
    99+
    2023-08-11
    Qt5
  • Vue.js实现音乐播放器
    本文实例为大家分享了Vue.js实现音乐播放器的具体代码,供大家参考,具体内容如下 目录如下: 运行效果如图所示: 代码如下: <!DOCTYPE html> &...
    99+
    2024-04-02
  • js实现音乐播放器
    本文实例为大家分享了js实现音乐播放器的具体代码,供大家参考,具体内容如下 音乐播放的主要js代码 音乐数据的数组对象 想向前端网页提供数据,并且为后面的js代码提供了音乐路径  {...
    99+
    2024-04-02
  • python实现音乐播放器
    python实现音乐播放器 模块:pygame 模块:time Python 布尔循环实例: import timeimport pygamemuxi_k = """_________________|Pyhon音乐播放器|͞͞͞͞ ...
    99+
    2023-01-30
    播放器 音乐 python
  • golang实现音乐播放
    在现代社会,人们越来越注重生活品质,音乐作为一种重要的娱乐方式,受到了广泛的关注和喜爱。在实现音乐播放的过程中,有很多的方式和工具。其中,golang作为近年来非常流行的编程语言之一,也可以用来实现音乐播放。本文将详细介绍如何使用golan...
    99+
    2023-05-14
  • C语言实现音乐播放器的示例代码
    目录介绍实现代码介绍 该程序是一个小的DEMO,实现了以下几个功能,可以借鉴学习。 功能1:鼠标选择互动功能。通过鼠标的移动和按下,按钮的颜色也会发生改变。 功能2:音乐的播放与暂停...
    99+
    2023-02-26
    C语言实现音乐播放器 C语言音乐播放器 C语言音乐播放
  • 基于Python实现音乐播放器的实现示例代码
    目录一、环境设置二、播放功能三、停止功能四、暂停与恢复五、关闭六、完整代码七、改进一、环境设置 第一步引入必须的各类包 import os import tkinter import...
    99+
    2024-04-02
  • Android Studio 实现音乐播放器
    目录 一、引言 视频效果展示: 图片效果展示: .启动页效果 2.登录页效果 3.注册页效果 4.歌曲列表页效果 5.播放页效果  二、详细设计 1.登陆注册功能 2.音乐列表页面 2.音乐播放功能 一、引言         Andr...
    99+
    2023-09-29
    android studio android ide
  • java 实现音乐播放器的简单实例
    java 实现音乐播放器的简单实例实现效果图:代码如下package cn.hncu.games;import java.applet.Applet;import java.applet.AudioClip;import java.awt....
    99+
    2023-05-31
    java 音乐 播放器
  • java如何实现播放背景音乐
    这篇文章主要介绍java如何实现播放背景音乐,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!测试源码播放背景音乐类package forGame;import javax.sound.sampled...
    99+
    2023-06-14
  • js实现网页音乐播放器
    本文为大家分享了简单的html,音乐播放器制作代码,供大家参考,具体内容如下 首先第一步找图片资源 音乐资源 放入到img文件夹中 第二步对页面布局进行布置 第三步书写js代码 复制...
    99+
    2024-04-02
  • Qt5如何实现音乐播放器
    要实现音乐播放器,你可以使用Qt5提供的多媒体框架来实现。以下是一个简单的示例:1. 首先,你需要在Qt项目中包含多媒体模块。在项目...
    99+
    2023-08-11
    Qt5
  • Android音乐播放器如何实现
    这篇“Android音乐播放器如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android音乐播放器如何实现”文章吧...
    99+
    2023-07-04
  • HTML音乐播放器怎么实现
    要实现一个基本的HTML音乐播放器,可以按照以下步骤进行:1. 创建一个`<audio>`元素用于播放音乐,并设置`sr...
    99+
    2023-08-08
    HTML
  • Android实现音乐视频播放
    本文实例为大家分享了Android实现音乐视频播放的具体代码,供大家参考,具体内容如下 步骤 1、新建一个安卓项目,再加一个assets包 2、在 assets中加入一段音频 3...
    99+
    2024-04-02
  • java使用JMF实现音乐播放功能
           JMF实际上是Java的一个类包。JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主...
    99+
    2023-05-31
    java jmf 音乐播放
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作