当前位置:文档之家› 用C#开发的简单MP3播放器

用C#开发的简单MP3播放器

用C#开发的简单MP3播放器
用C#开发的简单MP3播放器

一、软件说明:

功能说明:一个简易小巧的MP3播放器,可以播放已经下载好的MP3格式的音乐。

解决什么样的实际问题:市场上的音乐播放器大都占用资源比较大,而且需要联网,即使播放本地音乐,也会占用较多的网速,而这款播放器解决了这些问题。(虽然还是有很多缺陷,但用起来还是比较方便的。)

性能说明:可以播放单首或多首歌曲,可以保存或清空当前播放列表,支持列表循环,顺序播放,单曲循环。(但目前只支持MP3格式。)

程序类型说明:这个播放器是winform应用程序。

二、软件设计

软件整体结构图及模块划分:

软件整体结构图:

控制模块:

歌曲列表显示区:

在VS的“解决方案资源管理器”中的文件说明:整个项目的文件如下:

其中,Properties中所包含的的文件有:

这里包含的是定义程序集属性的文件,用来设定生成的有关程序集的常规信息dll文件的一些参数。

引用中包含的文件有:

这里包含的是这个项目所用的的一些类库信息。

Form1.cs中包含有:

这些是窗体的设计信息,而Program.cs是整个源程序的入口。

各模块对应的主要对象或方法:

控制模块中主要用到的是axWindowsmediaPlayer控件以及MenuStrip控件。

其中Windows media Player 控件用到的方法属性主要有:

axWindowsMediaPlayer1.BeginInit(); //初始化

axWindowsMediaPlayer1.settings.autoStart; //自动播放

axWindowsMediaPlayer1.settings.setMode("shuffle", false); //顺序播放

axWindowsMediaPlayer1.settings.enableErrorDialogs;

axWindowsMediaPlayer1.settings.balance;

axWindowsMediaPlayer1.settings.mute;

axWindowsMediaPlayer1.settings.volume;

MenuStrip控件用到的方法事件有:

privatevoid打开文件ToolStripMenuItem1_Click(object sender, EventArgs e);

privatevoid添加歌曲ToolStripMenuItem_Click(object sender, EventArgs e);

privatevoid添加文件夹ToolStripMenuItem_Click(object sender, EventArgs e);

privatevoid退出ToolStripMenuItem_Click(object sender, EventArgs e); privatevoid清空列表ToolStripMenuItem1_Click(object sender, EventArgs e);

privatevoid顺序播放ToolStripMenuItem_Click(object sender, EventArgs e);

privatevoid单曲循环ToolStripMenuItem_Click(object sender, EventArgs e);

privatevoid随机播放ToolStripMenuItem_Click(object sender, EventArgs e);

数据库设计或数据文件说明:

由于播放器使用数据量较小,故采用TXT保存歌曲文件列表。使用的是文件处理。

设计思路:

播放器模块的设计结构如下:

三、测试:

测试用例列表:

F:\Music\A Little Love.mp3

F:\Music\Christmas In My Heart.mp3

F:\Music\Everytime.mp3

F:\Music\Living To Love You.mp3

F:\Music\Love Paradise.mp3

F:\Music\Lucky Twice - Me And You.mp3

F:\Music\Morning.mp3

F:\Music\Traveling Light.mp3

F:\Music\Trouble Is A Friend.mp3

F:\Music\Wish You Were Here.mp3

F:\Music\You and Me.mp3

F:\Music\Ψ?.mp3

F:\Music\一直很安静.mp3

F:\Music\一首简单的歌.mp3

F:\Music\七里香.mp3

F:\Music\下一个天亮.mp3

F:\Music\不再犹豫.mp3

F:\Music\不完整的旋律.mp3

F:\Music\东风破.mp3

F:\Music\依恋.mp3

F:\Music\依然爱你.mp3 F:\Music\光辉岁月.mp3 F:\Music\兰若词.mp3

F:\Music\再见理想.mp3 F:\Music\分手快乐.mp3 F:\Music\勇气.mp3

F:\Music\匿名的好友.mp3 F:\Music\单身美好.mp3 F:\Music\喜欢两个人.mp3 F:\Music\围巾.mp3

F:\Music\在树上唱歌.mp3 F:\Music\夜曲.mp3

F:\Music\大城小爱.mp3 F:\Music\天空.mp3

F:\Music\如果有一天.mp3 F:\Music\孤单北半球.mp3 F:\Music\孩子气.mp3

F:\Music\宁夏.mp3

F:\Music\左边.mp3

F:\Music\带我走.mp3

软件运行截图:

测试情况分析

经测试,软件运行情况基本良好,但单曲循环功能有些缺陷,有待改进,总体情况还算良好。

四、小结

这一次的课程设计开发的这个软件是我的第一个软件,看到它能够基本实现我想要的功能,感到非常开心,尽管还有很多缺陷。

在做这个软件的时候,遇到过很多问题,一开始觉得有问题上网找就是了,但在做的的时候却并不是如此,上网百度,用C#开发的播放器源码很多,教程也不少,但都讲的很乱,而且那些属性名,控件名,方法名之类的都和自己的不同,原理不懂,给你源码也没用。没办法,就只能恶补,像各种控件的属性,尤其是axWindowsmediaPlayer控件的各种属性及使用方法(这也是我这次课程设计最大的收获。),文件处理等。

通过这次课程设计,我学到了很多课堂和书本学不到的东西,我觉得最重要的一点就是注意细节以及动手之前弄懂基本原理。

五、附录

用到的第三方控件或组件说明:

这个程序用到的第三方控件是axWindowsmediaPlayer控件,这个控件是一个COM组件,是windows自带的控件,用于播放媒体文件,在开发媒体播放器时使用是非常方便的。

程序的主要代码(对应上面第二条):

窗体设计代码From1.cs:

using System;

using System.Collections.Generic;

using https://www.doczj.com/doc/cd1262859.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace MyMusicPlayer

{

publicpartialclass MusicPlayer : Form

{

public MusicPlayer()

{

InitializeComponent();

}

string[] musicPath = newstring[1000]; //用于保存歌曲目录

int musicCount = 0;

privatevoid Form1_Load(object sender, EventArgs e)

{

myPlayer.BeginInit(); //初始化

myPlayer.settings.autoStart = true; //自动播放

myPlayer.settings.setMode("shuffle", false); //顺序播放

myPlayer.settings.enableErrorDialogs = true;

myPlayer.settings.balance = 0;

myPlayer.settings.mute = false;

myPlayer.settings.volume = 100; //声音设为最大

if (File.Exists("listbox.txt")) //如果存在播放列表,那么加载播放列表

{

StreamReader reader = new StreamReader("listbox.txt");

try

{

while (reader.Peek() != -1)

{

string filepath = reader.ReadLine();

if (File.Exists(filepath))

{

musicPath[musicCount++] = filepath;

string filename = Path.GetFileName(filepath);

listBox1.Items.Add(filename); //listbox用来显示歌曲名

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count, myPlayer.newMedia(filepath));

}

}

listBox1.SelectedIndex = 0;

}

catch (Exception)

{

listBox1.SelectedIndex = -1;

MessageBox.Show("加载播放列表失败或者列表为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

finally

{

reader.Close();

}

}

}

privatevoid打开文件ToolStripMenuItem1_Click(object sender, EventArgs e)//打开单首歌曲,但不加载到播放列表

{

DialogResult dr = openFileDialog1.ShowDialog();

if (dr == DialogResult.OK)

{

myPlayer.URL = openFileDialog1.FileName;

}

}

privatevoid添加歌曲ToolStripMenuItem_Click(object sender, EventArgs e)//打开单首歌曲,并加载到播放列表

{

DialogResult dr = openFileDialog1.ShowDialog();

if (dr == DialogResult.OK)

{

myPlayer.URL = openFileDialog1.FileName;

string filepath = openFileDialog1.FileName;

string filename = Path.GetFileName(filepath);

listBox1.Items.Add(filename);

musicPath[musicCount++] = filepath;

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count, myPlayer.newMedia(filepath));

}

}

privatevoid添加文件夹ToolStripMenuItem_Click(object sender, EventArgs e)//打开媒体文件夹,并加载到播放列表

{

DialogResult dr = folderBrowserDialog1.ShowDialog();

if (dr == DialogResult.OK)

{

string[] filepath = Directory.GetFiles(folderBrowserDialog1.SelectedPath); foreach (string s in filepath)

{

if (Path.GetExtension(s) == ".mp3")

{

string filename = Path.GetFileName(s);

listBox1.Items.Add(filename);

musicPath[musicCount++] = s;

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count,

myPlayer.newMedia(s));

}

}

}

}

privatevoid退出ToolStripMenuItem_Click(object sender, EventArgs e)//退出播放器并保存当前播放列表

{

myPlayer.Ctlcontrols.stop();

myPlayer.close();

StreamWriter writer = new StreamWriter("listbox.txt", false, Encoding.Unicode); //保存播放列表

for (int i = 0; i<= musicCount - 1; i++)

{

if (musicPath[i] != string.Empty)

{

writer.WriteLine(musicPath[i]);

}

}

writer.Close();

Application.Exit();

}

privatevoid axWindowsMediaPlayer1_PlayStateChange(object sender,

AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) //显示播放状态

{

if (myPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying)

{

string s = myPlayer.currentMedia.sourceURL;

for (int i = 0; i

{

if (listBox1.Items[i].ToString() == Path.GetFileName(s))

{

listBox1.SelectedIndex = i;

break;

}

}

}

}

privatevoid清空列表ToolStripMenuItem1_Click(object sender, EventArgs e)//清空当前播放列表

{

myPlayer.Ctlcontrols.stop(); //先停止播放器

listBox1.Items.Clear(); //清空listbox

myPlayer.currentPlaylist.clear(); //清空播放列表

for (int j = 0; j

{

musicPath[j] = "";

}

}

privatevoid Form1_KeyPress(object sender, KeyPressEventArgs e)

{

if (char.Equals(e.KeyChar, ' '))

{

if (myPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying)

{

myPlayer.Ctlcontrols.pause();

}

}

}

privatevoid顺序播放ToolStripMenuItem_Click(object sender, EventArgs e)//按列表顺序播放歌曲文件

{

myPlayer.settings.playCount = 1;

myPlayer.currentPlaylist.clear();

for (int j = 0; j

{

if (musicPath[j] != string.Empty)

{

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count, myPlayer.newMedia(musicPath[j]));

}

}

myPlayer.settings.setMode("shuffle", false);

myPlayer.Ctlcontrols.playItem(myPlayer.currentPlaylist.get_Item(0));

}

privatevoid单曲循环ToolStripMenuItem_Click(object sender, EventArgs e)//单曲循环 {

myPlayer.Ctlcontrols.stop();

myPlayer.currentPlaylist.clear();

if (listBox1.SelectedIndex != -1 && listBox1.Items.Count > 0)

{

int k = listBox1.SelectedIndex;

for (int i = 0; i< 1000; i++)

{

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count, myPlayer.newMedia(musicPath[k]));

}

}

myPlayer.Ctlcontrols.playItem(myPlayer.currentPlaylist.get_Item(0));

}

privatevoid随机播放ToolStripMenuItem_Click(object sender, EventArgs e)//随机播放列表歌曲文件

{

myPlayer.settings.playCount = 1;

myPlayer.Ctlcontrols.stop();

myPlayer.currentPlaylist.clear();

Random rd = new Random(https://www.doczj.com/doc/cd1262859.html,lisecond);

for (int i = 0; i< 1000; i++)

{

int j = rd.Next(0, musicCount);

if (musicPath[j] != string.Empty)

{

myPlayer.currentPlaylist.insertItem(myPlayer.currentPlaylist.count, myPlayer.newMedia(musicPath[j]));

}

}

myPlayer.Ctlcontrols.playItem(myPlayer.currentPlaylist.get_Item(0));

}

privatevoid listBox1_SelectedIndexChanged(object sender, EventArgs e)//点击列表歌曲时播放

{

int j = listBox1.SelectedIndex;

if(listBox1.Items.Count>0&&listBox1.SelectedIndex>=0)

{

myPlayer.Ctlcontrols.playItem(myPlayer.currentPlaylist.get_Item(listBox1.Select edIndex));

}

}

}

}

程序入口代码Program.cs:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using Microsoft.Win32;

using System.Threading;

namespace MyMusicPlayer

{

staticclass Program

{

/*显示已经运行程序的主界面*/

[DllImport("user32.dll", EntryPoint = "ShowWindow")]

staticexternbool ShowWindow(IntPtr handle, int flags); //显示窗口

[DllImport("user32.dll", EntryPoint = "SetForegroundWindow")] staticexternbool SetForegroundWindow(IntPtr handle); //将窗口置最前

///

///应用程序的主入口点。

///

[STAThread]

staticvoid Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new MusicPlayer());

}

}

}

音乐播放器前十排行

音乐播放器前十排行 1、QQ音乐 QQ音乐是腾讯公司推出的网络音乐平台,是中国互联网领域领先的正版数字音乐服务的领先平台,海量乐库在线试听、卡拉ok歌词模式、最流行新歌在线首发等,绿钻用户还可享受高品质音乐试听、正版音乐下载、MV观看等特权。 QQ音乐目前是国内音乐APP的绝对龙头,2016年底其曲库已经超过2000万首,旗下拥有的版权也是音乐APP中的第一,如索尼、华纳、杰尔威、英皇、韩国YG等,其市场份额也超过50%。虽然总有人吐槽QQ音乐,但是十大音乐APP排行榜第一位毫无悬念。在此前评选的全球音乐流服务排行榜,QQ音乐排名第四。 2、虾米音乐 虾米音乐版权建设虽然起步较晚,歌曲量在整体版权音乐中的比例低于20%,但在华语资源上仍具有一定优势。你想要听到华研唱片下的林宥嘉、S.H.E和田馥甄、相信音乐的五月天、梁静茹以及聚集了李宗盛、周华健等人的滚石,还是要投入虾米音乐的怀抱。而且虾米也在去年取得了韩国SM公司的音乐版权,这在国内来说,争取到了很大一部分的韩粉。虽然无法对QQ音乐造成威胁但依旧稳居十大音乐APP排行榜第二。 3、网易云音乐 网易云音乐不用再过多介绍了,近两年大火的音乐APP,口碑爆棚,市场份额目前也达到15%,局国内第二仅次于QQ音域。为何口碑份额双丰收的网易云音乐仅列十大音乐APP排行榜第三?网易云音乐的版权数量实在太少,并且官方也并不太重视版权的购买,虽然网易云音乐的版权音乐歌曲量占整体版权音乐的70%左右,但非常有意思的是大部分的版权都是通过转授权获得的。

4、酷狗音乐 酷狗音乐是一款集中播放、音乐效果、在线下载歌词等众多功能于一身,完全免费的手机音乐播放器。酷狗算是老牌音乐APP了, 但此前酷狗和酷我同QQ音乐一起加入新音乐集团,三大音乐APP曲 库资源基本互通,而且音乐伴奏资源众多也是酷狗的一大优势,喜 欢唱歌的人通常都是用酷狗搜索放伴奏唱歌、录歌。 不过酷狗的音质是劣势,对于耳朵挑剔的乐迷,对音质要求高的人来说很难满足。 5、咪咕音乐 咪咕音乐是一款面向所有用户的手机音乐APP,它包含了在线听歌、下载歌曲、订购彩铃以及开通会员等功能和业务,用户通过咪 咕音乐可以第一时间聆听中国移动无线首发的最新音乐,感觉最热 最流行歌曲,实时了解最新音乐咨讯及娱乐新闻,并可通过软件行 使无线音乐俱乐部会员权益。目前该软件已经覆盖市面上高中低端 主流机型,无论你是何种手机,均可轻松安装和使用。 6、酷我音乐 酷我音乐是中国数字音乐的交互服务品牌,是互联网领域的数字音乐服务平台,同时也是一款内容全、聆听快和界面炫的音乐聚合 播放器,是国内的多种音乐资源聚合的播放软件。自平台成立以来,酷我音乐作为前端潮流音乐的重要推手,率先与唱片公司、版权管 理机构合作探索发展,免费向广大用户提供方便流畅的在线音乐, 还有免费无损音乐方便用户的试听和下载,生成了丰富的音乐流媒 体生态系统。 7、天天动听 天天动听是一款功能强大、完全免费的手机音乐播放软件,支持歌词和歌曲图片下载,简洁人性化的操作,带来手机听歌的全新体验,是拇指一族必备的音乐播放工具。 8、百度音乐

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

视频播放器通用代码

ASP视频播放器通用代码 1.avi格式 2.mpg格式

课程设计简易单片机音乐播放器

课程设计 题目:基于单片机音乐演奏曲Title: instrumental music based on single chip 姓名: 学号: 系别: 专业: 年级: 指导教师: 2012年5 月25 日

摘要 单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本设计以At89c2051为核心,主要由电源电路、复位电路、音频放大电路、时钟电路和数码管电路和蜂鸣器电路构成单片机奏乐附加时钟的一个小系统。电路中I/O口采用分时复用的借口技术,使AT89c2051单片机的引脚资源得以充分利用,本系统的电路简单,实现的功能强大,所用芯片比较便宜,性价比较高。 关键词:At89c2051,数码管,单片机奏乐,分时复用

目录 摘要 ........................................................... - 1 - 1.引言 (3) 2.系统整体结构 (4) 2.1系统总设计 (4) 2.2实现的功能 (4) 2.3主要芯片介绍 (4) 2.3.1 AT89c2051芯片介绍 (4) 3.系统硬件设计 (5) 3.1键盘输入模块 (5) 3.2时钟模块 (5) 3.3显示模块 (6) 3.4复位电路 (6) 3.5蜂鸣器电路设计 (7) 4.系统软件设计 (7) 4.1系统主程序流程图系 (7) 4.2 部分子程序流程图 (8) 结束语 (10) 参考文献 (10) 致谢 (11) 附录 (11)

1.引言 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,以单片机为核心的各种系统也越来越多。同时也标志了自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。 本次设计为单片机奏乐器,硬件部分它以单片机AT89C2051为核心,由功放电路、数码管等组成。当接上电源按下开关时,就能听到优美的旋律。当然这些音乐都是通过软件编程实现的,把它存储在存储器里,根据存储容量大小决定存储音乐的数目。 [2]

基于单片机的音乐播放器

基于单片机的音乐播放器 摘要 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。 基于单片机的音乐播放器可应用于MP3、MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括"Do"、"Re"、"Me"--等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。基于这个思想,采用AT89C52单片机设计了一款特殊的"音乐播放器",本播放器可实现播放、暂停、复位等功能。 关键字:单片机;集成电路:89C52芯片;音乐播放器

Abstract Single Chip Microcomputer is an integrated circuit chip, VLSI technology is the use of having the data processing capabilities of the CPU random access memory RAM, read-only memory ROM, a variety of I / O port and interrupt system, the timer / counter functions (may also include a display driving circuit, the pulse width modulation circuit, an analog multiplexer, A / D converter circuit, etc.) are integrated into a small sound system on a microcomputer composed of silicon. Microcontroller-based music player can be used in many ways mp3, MP4, loudspeakers, etc., and as a secondary function of many systems, as one of the important microcontroller hardware resources, using the timer can generate a variety of fixed frequency square wave signal can be generated include the "Do", "Re", "Me" - like various frequencies including the sound scale. The various scales together, may form a song or play a melody. Based on this idea, using AT89C52 designed a special "Music Player", the player can be realized play, pause, reset and other functions. Keyword:Single Chip Microcomputer;integrated circuit;89C52 chip;Music Player

java视频播放器几种

package com.bird.jmf; import java.awt.*; import java.awt.event.*; import java.io.*; import https://www.doczj.com/doc/cd1262859.html,.*; import javax.swing.*; import javax.media.*; // 视频播放程序 public class VideoPlayDemo extends JFrame { private Player player; // 播放器对象 private Component visualMedia; // 视频显示组件 private Component mediaControl; // 视频播放控制组件 private Container container; // 主容器 private File mediaFile; //媒体文件 private URL fileURL; //媒体文件URL地址 public VideoPlayDemo() { // 构造函数 super("视频播放程序"); //调用父类构造函数 container = getContentPane(); //得到窗口容器 JToolBar toobar = new JToolBar(); //实例化工具栏 JButton openFile = new JButton("打开媒体文件"); //实例化按钮 toobar.add(openFile); //增加按钮到工具栏 JButton openURL = new JButton("打开网络地址"); toobar.add(openURL); container.add(toobar, BorderLayout.NORTH); //设置工具栏 openFile.addActionListener(new ActionListener() { //打开文件按钮事件处理 public void actionPerformed(ActionEvent event) { JFileChooser fileChooser = new JFileChooser(); //实例化文件选择器 fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);//设置文件打开模式为仅打开文件 int result = fileChooser.showOpenDialog(VideoPlayDemo.this);//显示对话框 if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为 mediaFile = fileChooser.getSelectedFile(); //得到选择的文件 }

数字系统设计音乐播放器

一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、 讨论、心得 一、实验目的和要求: 实验目的: (1)掌握音符产生的方法,了解DDS 技术的应用。 (2)了解AC97音频接口电路的应用。 (3)掌握系统“自顶而下”的设计方法。 实验任务: 设计一个音乐播放器。 (1)可以播放四首乐曲,设置play 、next 、reset 三个按键。按play 键播放当前乐曲,按next 键播放下一首乐曲。 (2)LED0指示播放情况(播放时点亮)、LED2和LED3指示当前乐曲序号。 二、实验内容和原理 (1)音乐播放器的设计原理 根据实验任务可将系统分为主控制器(mcu )、乐曲读取(song_reader )、音符

播放(note_player)、AC97音频接口(codec_conditioner)和ac97_if五个子模块,系统的总体框图如下: 各个模块的功能如下: 模块接收按键信息,通知song_reader模块是否要播放(play)及播放哪首乐曲(song),若一曲播放结束则进入播放结束END状态。 模块根据mcu模块的要求,逐个取出音符{note,duration}送给note_player模块播放,当一首乐曲播放完毕,回复mcu模块乐曲播放结束信号(song_done)。 模块接收到需播放的音符,在音符的持续时间内,以48kHz速率送出该音符的正弦波样品给AC97音频接口模块。当一个音符播放结束,向song_reader模块发送一个note_done脉冲索取新的音符。 、ac97_if模块负责与AC97音频系统接口工作,本实验已提供了这两个模块的代码。 另外,按键处理模块完成输入同步化、防颤动和脉宽变换等功能。 1、主控制模块mcu的设计 mcu模块是主控制模块,有响应按键信息、控制系统播放两大任务,工作流程如下面的流程图所示。要求系统复位后经RESET状态初始化后进入WAIT状态等待按键输入或乐曲播放结束应答,若有按键输入则转入相应的按键处理状态(NEXT或PLAY),若一曲播放结束则进入结束播放END状态。 mcu的控制器算法流程图如下图: 以下为mcu的端口含义

音乐播放器的设计与实现

第一章绪论 1.1背景 随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。 3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。3技术使音乐数据压缩比率大,回放质量高。如格式的音乐数据压缩成3格式,音效相差无己,但大小至少可压缩12倍。由于3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。1995年,3格式的音乐文件刚在网络上传播时,主要用等播放软件进行播放,使3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。近几年以来,随着3播放器的出现及其技术的发展,人们对3播放器的要求越来越高,制造商在3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。本设计主要是利用技术设计一款新型的3播放器。 9是公司的16/32位处理器,是适用于普通设备的一种高性价比的微控制器。本设计采用的是三星公司推出的9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。S3C2440主频高达400M,片上集成了丰富的资源:如()总线与控制器,为与数模转换器()的连接提供了一种理想的解决方案。 3播放器的设计比较复杂且对处理器的要求较高,因而3播放器必须仔细设计以降低成本。本设计是在9平台上设计、实现一个3播放器。 第二章系统总体方案 2.1 系统功能 本设计提出了一种基于嵌入式处理器硬件平台的3播放器设计方法。此播放器采用体系结构中的9作为系统控制器,利用外围设备通用串行接口下载3歌曲,用存贮3文件。主要对3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。系统的主要部分是音频编码与解码,这是系统设计的核心。3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。基于9的3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及3播放器应用层。主要实现歌曲的播放。 2.2 设计指标 1、3工作电压为具有3.3V左右,电流250,具有音频解码和播放功能。 2、通过接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。

音乐播放器代码大全

音乐播放器代码大全 autostart="true"中true或1表示自动播放,false或0表示手动播放 loop="true" 中的true或1表示重复播放,false或0表示只播放一次width= height= 中的数字分别表示播放器的宽度和高度=0表示隐藏播放器 EnableContextMenu="0" 禁右键 ShowStatusBar="1" (带显示文件播放信息) 1隐藏播放器(不循环) 代码: 2.隐藏播放器(循环播放) 代码: 3.黑色皮肤播放器 代码: 4.淡蓝色播放器 代码:

5.迷幻播放器 代码:

6.带菜单的播放器 代码: 7.深黄色带菜单播放器 代码: 8.灰色播放器 代码:

新型变频数码音乐播放器使用手册

新型变频数码音乐播放器使用手册 江苏华宇电气有限公司 (网址)https://www.doczj.com/doc/cd1262859.html, (邮箱)cnhuayu@https://www.doczj.com/doc/cd1262859.html, 第一章总述........................................................................................................- 3 - 1.1简介 .....................................................................................................- 3 - 1.1.1 华宇MP3型超级智能数码音乐播放仪特点........................- 3 - 1.1.2 手册约定 .................................................................................- 4 - 1.1.3 通讯软件计算机系统要求 .....................................................- 4 - 1.1.4 产品包装 .................................................................................- 4 - 1.2 安装说明 ..........................................................................................- 5 - 1.2.1 硬件安装 .................................................................................- 5 - 1.2.2 软件安装 .................................................................................- 6 - 1.2.3 运行程序 .................................................................................- 6 - 第二章编程说明................................................................................................- 6 - 2.1 编程准备 ............................................................................................- 6 - 2.1.1 整理时间表: .........................................................................- 6 - 2.1.2 编程状态说明: .....................................................................- 7 - 2.1.3编程顺序: ..............................................................................- 7 - 2.1.4编程位左右移动: ..................................................................- 7 - 2.1.5数值输入: ..............................................................................- 7 - 2.1.6 编程存贮: .............................................................................- 7 - 2.1.7编程退出: .................................................................................- 7 - 2.2 定时音乐播放程序编程 ....................................................................- 8 - 2.2.1 时间设置: ................................................................................- 8 - 2.2.2 曲目设置: ................................................................................- 8 - 2.2.3 星期设置: ................................................................................- 8 -

《微机原理与应用》课程设计——电子音乐播放器

电子音乐播放器 一、课程设计的目的和意义 学习和掌握计算机中常用接口电路的应用和设计技术,学会针对不同的要求设计汇编程序代码,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。 二、设计要求 利用8254作为音阶频率发生器,应先对至少两段音乐进行编码后存入音符表,并建立好音阶表,每段音符长度不能少于60个,每首连续播放3遍后,自动播放下一段音乐,几段音乐播完后,循环播放,直到有键盘输入任意字符时停止,并且使用8255作为控制开关的并行输入接口,输入开关选择的音乐控制信号。 三、设计总框图

四、设计设计思路说明: 电子音乐播放器属于接口电路的连接使用,本设计是以8254芯片为核心的发生系统。8086CPU在形成系统总线后,通过和8254及8255的连接使用可以很好的驱动扬声器发音。系统初始化后,8255通过B通道,从控制开关读取所需的控制字,并送入8086CPU中进行判断,选择不同的播放音乐。使8254的通过0号计数器工作在“频率发生器”方式3,向发生器发出不同频率的方波。当给定不同的计数初值时可以使扬声器发出不同频率的音响。 五、程序流程图 开始 读取音符频率 是1H吗? N Y 播放song1 播放音乐 读取选择信号

六、接口电路原理图 1、8254的基本知识 8254占用4个端口,3个定时器各占1个,控制端口占1 个。8254的内部结构如图所示,它主要包括以下几个主要部分: 8254的内部结构 (1).数据总线缓冲器 实现8254与CPU 数据总线连接的8位双向三态缓冲器,用以传送CPU 向8254的控制信息、数据信息以及CPU 从8254读取的状态信息,包括某时刻的 是2H 吗? N 是4H 吗? N 键盘是否输入? 结束 播放song2 播放song3 Y N Y CX=0 N Y

基于ARM的音乐播放器的设计与实现

基于ARM的音乐播放器的设计与实现

摘要 多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体, 是当今信息技术领域发展最快、最活跃的技术, 是新一代电子技术发展和竞争的焦点。嵌入式设备与多媒体技术的融合使得PDA, 智能手机, 平板等智能终端得到快速发展。未来, 智能终端与物联网的结合将推动嵌入式设备快速发展。因此, 基于嵌入式终端的应用前景广阔。 设计目的是在嵌入式平台上开发一款基于开源Linux操作系统的多媒体播放器, 它以mplayer作为核心播放程序, 将支持更多的文件播放格式甚至能够与PC机上的媒体播放器相媲美。 多媒体播放器的硬件部分: 以S3C2440开发板为硬件平台, 它的外围设备能够外插U盘作为存储器、TFT-LCD触屏、key23键盘, 以及外接耳机作音频设备。因为播放器开发是基于成熟的硬件平台, 主要工作集中在软件部分, 主要包括: 搭建开发环境, 配置编译mplayer可执行程序, 编写触屏驱动, 及key23驱动, 编写主控程序等等, 最后将程序移植安装到开发板, 完成基于Linux的嵌入式播放器的设计。经过测试, 播放器符合设计要求。

关键词: 触屏, 移植, 线程, 嵌入式

Abstract The multimedia technology involves sound, text, image, animation, video and communications and other functions. Information technology is one of fastest growing technologies. Obviously, it is a new generation of electronic technology development and the focus of competition. The integration of embedded equipment and multimedia technology contributes a rapid development for PDA, smart phones, slab intelligent terminal. In the future, intelligent terminal will promote the network embedded equipment rapid development. So, the application that based on embedded terminal has a bright future. The purpose of this design is to design multimedia player on an embedded platform by using the open source in Linux operating system. It is take mplayer as core broadcast program, which will support more file format, and even is more comparable with the PC media players. The hardware part of Multimedia player takes S3C2440 development board for the hardware platform, which use the USB disk, tft-lcd touch screen, key23 keyboard, and external earphone for audio equipment. Because the player development is based on mature hardware platform, the main work focused on software part, which main includes these works, such as the development environment set up, the compiled configuration of mplayer, the drive of touch screen and key23, and the program of master control, etc. Finally, the developed program can be installed to development board based on the Linux. After testing, player can meet the design requirements. Keywords: touch screen; transplant; thread; embedded;

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

【推荐下载】html5 简单音乐播放器

html5 简单音乐播放器 2016/04/09 0 html5 简单音乐播放器 !DOCTYPE html html xmlns=“w3/1999/xhtml”head meta http-equiv=“Content- Type”content=“text/html;charset=UTF-8”/title /title style type=“text/css”body{font-family:微软雅黑;} #container{width:500px;margin:10px auto;border:1px solid #ccc;background:#999999;border-radius:5px;padding:10px;} #mName{float:left;width:250px;} #mTime{float:left;width:250px;text-align:right;} #player{margin-top:20px;} #media{width:450px;} ul{list-style:none;padding-left:5px;} ul li{margin-top:5px;} #mList{height:200px;} #changeMusic{text-align:right;} a{text- decoration:none;color:black;} a:hover{color:red;} /style script //声明两个数组,用来存储歌曲名称和文件地址var musicNames=[],musicSrcs=[],randomNums=[]; var RANDOMNUM=5;//随机的歌曲数量function $(id){ return document.getElementById(id); } function initial(){ //为数组赋值musicNames[0]=“Blood Money.mp3”;musicNames[1]=“California Hotel.mp3”; musicNames[2]=“Loving You.mp3”;musicNames[3]=“Miracle.mp3”; musicNames[4]=“SantaFe.mp3”;musicNames[5]=“Wonderful Tonight.mp3”; musicSrcs[0]=“music/Blood Money.mp3”;musicSrcs[1]=“music/CalifoniaHotel.mp3”; musicSrcs[2]=“music/Loving You.mp3”;musicSrcs[3]=“music/Miracle.mp3”; musicSrcs[4]=“music/SantaFe.mp3”;musicSrcs[5]=“music/Wonderful Tonight.mp3”; //获取元素media = $(“media”);//绑定事件media.addEventListener(“canplay”,media_canplay,false); media.addEventListener(“play”,media_play,false); //获取歌曲loadMusic(); } /** * 判断r 在randomNums 中是否已经存在* return true : 已经存在* return false : 不存在*/ function checkRExists(r){ for(var i=0;i randomNums.length;i++){ if(randomNums[i] == r){ //存在return true; } } return false; } /** * 方法:用于生成指定个数随机数* 如果碰到重复的数字,则重新生成*/ function generateRandom(){ var i=0; for(;;){ var

相关主题
文本预览
相关文档 最新文档