mp3音乐播放器c语言版

合集下载

mfc编程mp3

mfc编程mp3

Init();
m_Pause.SetWindowText("暂停");
//
CString filter = "媒体文件(所有类型)|*.cda;*.mid;*.rmi;*.midi;*.asf;*.wm;*.wma; *.asx;*.wax;*.m3u;*.wvx;*.mpeg;*.mpg;*.m1v;*.mp3; *.avi;*.wmv;*.wav;*.snd;*.au;*.aif;*.aifc|";
MCIWndSeek(m_hWnd,pos); // 定位文件到pos 处
MCIWndPlay(m_hWnd); // 播放文件
MCIWndPause(m_hWnd); // 暂停
MCIWndResume(m_hWnd); // 从暂停的地方重新启动
MCIWndStop(m_hWnd); // 停止
mciSendCommand (m_wDeviceID, MCI_PLAY,
MCI_FROM, (DWORD)(LPVOID)
&PlayParms));
---- 4. 暂停
MCI_PLAY_PARMS PlayParms;
mciSendCommand (m_wDeviceID, MCI_PAUSE, 0,
{
m_Music.Close();
m_MusicList.SetCurSel(index);
CString sPath = m_MusicAry.GetAt(index);
m_Music.Open(sPath);
m_Status.SetWindowText(sPath + _T(" 正在播放..."));//在状态条中显示提示信息

C语言下的MP3播放器

C语言下的MP3播放器

论文题目基于VC的MP3播放器设计与实现姓名学院学院专业计算机科学与技术指导教师讲师备注年月日基于VC的MP3播放器设计与实现作者姓名:指导教师:讲师单位名称:计算机科学与技术系专业名称:计算机科学与技术学校年月Design and Implementation of Mp3 PlayerBased on VCbySupervisor: Lecturer毕业设计(论文)任务书基于VC的MP3播放器设计与实现摘要本MP3播放器应用程序是一个基于Visual C++ 6.0 开发的一个多媒体软件,是建立在MCI(媒体控制接口)控制之上的软件。

该软件开发研究的目的主要是为了给人们娱乐和消遣用的;该软件实现的方法是通过调用MCI控制接口的相关函数,获取系统的控制信息,利用系统信息对MP3播放器的每一个动作进行控制。

现在为止,该软件到可以实现的功能是:该软件可以添加和播放多种音频文件格式,可以添加单个音频文件,也可以同时添加多个音频文件;对音频文件的操作有:播放音频文件、暂停、停止,可以选择播放下一首歌或前一首歌;可以对已经添加进入播放列表的音频文件进行删除或者添加新的音频文件;可以调节系统的音量的大小;该软件还可以显示当前播放的进度;可以隐藏或展开播放列表;本软件可以进行系统托管,隐藏主界面后,在任务栏创建托管图标;单击托管图标后可以重新弹出控制界面,并取消托管图标。

在系统托管或自动播放的情况下,该软件在播放完一首歌后可以自动跳转到下一首歌,并播放此音频文件。

关键词:媒体控制接口,多媒体,系统托管,控件,音频文件Design and Implementation of Mp3 PlayerBased on VCAbstractThe MP3 Player application programme is software that developed based on Visual C++ 6.0, and also is software that built on the control of MCI. The purpose of developing this software is for the entertainment and recreation of people. The way this software realized is transfer the correlation functions of MCI, and obtain the information of system control, using this information to control each movement of the MP3 Player.So far, the functions that software can realize are: The software can open and play different formats of audio-files,You can add the audio-file one by one or add many audio-files once; play the audio-files; pause; stop; play the following audio-file, and play the preceding audio-file. You can also delete the audio-files that the play list already have or add the new audio-file that the play-list does not exist. You can accommodate the volume of the system. The can show the progress that the current audio-file played. And can hide or outspread the play list. The software can trustee by the system, and will create a icon on the taskbar. When click the icon the interface will show again. While the current audio-file is playing over, it will jump to the next audio-file and play automatically.Key words: MCI,Media,System-Trustee,Controls,Audio-files目录毕业设计(论文)任务书 (I)摘要 (II)ABSTRACT......................................................................................... I II 第1章绪论 .. (1)1.1课题来源 (1)1.2课题描述 (1)1.3课题设计的思想 (1)1.4国内外的发展概况 (2)1.4.1 Winamp (2)1.4.2千千静听 (2)第2章用户需求分析 .................................... 错误!未定义书签。

单片机_音乐播放的c代码

单片机_音乐播放的c代码

单片机音乐播放的c代码#include "reg52.h"unsigned char Count;sbit _Speak =P2^3 ; //讯响器控制脚unsigned char code SONG[] ={ //祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20, 0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20, 0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20, 0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20, 0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10, 0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20, 0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20, 0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20, 0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10, 0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80, 0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20, 0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20, 0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10, 0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,//路边的野华不要采0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C ,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20 ,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20, 0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30, 0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30, 0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26 ,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20, 0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F ,0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20, 0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B ,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20, 0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,};void Time0_Init(){TMOD = 0x01;IE = 0x82;TH0 = 0xD8;TL0 = 0xEF; //12MZ晶振,10ms}void Time0_Int() interrupt 1{TH0 = 0xD8;TL0 = 0xEF;Count++; //长度加1}/*-------------------------------------------------功能:1MS延时子程序-------------------------------------------------*/void Delay_xMs(unsigned int x){unsigned int i,j;for( i =0;i < x;i++ ){for( j =0;j<3;j++ );}}/*-------------------------------------------------功能:歌曲播放子程序i为播放哪一段曲目-------------------------------------------------*/void Play_Song(unsigned char i){unsigned char Temp1,Temp2;unsigned int Addr;Count = 0; //中断计数器清0Addr = i * 217;while(1){Temp1 = SONG[Addr++];if ( Temp1 == 0xFF ) //休止符{TR0 = 0;Delay_xMs(100);}else if ( Temp1 == 0x00 ) //歌曲结束符{return;}else{Temp2 = SONG[Addr++];TR0 = 1;while(1){_Speak = ~_Speak;Delay_xMs(Temp1);if ( Temp2 == Count ){Count = 0;break;}}}}}/*-------------------------------------------------功能:主程序-------------------------------------------------*/void main(){Time0_Init(); //定时器0中断初始化while(1){Play_Song(0); //播放}}6回答者:小崔凡凡- 二级2009-10-16 21:47我来评论>>提问者对于答案的评价:谢谢!相关内容• 单片机播放音乐里的音乐代码是怎么得到的?有什么软件能将歌曲直接转换成16进制代码 4 2008-11-14• 给个单片机C语言编的音乐程序,能够播放音乐 6 2009-7-22• 求用c语言编写的播放背景音乐的代码 5 2009-6-12• 单片机音乐代码问题 2009-9-28• 单片机音乐代码 5 2009-5-18更多相关问题>>查看同主题问题:单片机音乐音乐播放播放代码等待您来回答∙nokia 3100c音乐播放器如何跟新∙为什么用酷我音乐盒听歌后那歌会在C:\ProgramData\mcache里面呢∙深圳龙华天龙大道珍藏版狂嗨现场dj明仔vs女mc小黎茂名细飞11分钟半时候的那音乐谁知道叫什么名字!∙夏普9020c合上盖子怎么听音乐?∙C:Documents and SettingsAdministrator「开始」菜单酷我音乐盒2010.lnk∙nokia 2600c手机可以用什么音乐播放器?∙『windows』在网页制作中,下列不是背景音乐格式的是那一个?A.tem B mp3 C wav D∙3110c播放音乐时会卡,之后会自动到下一首,怎么办?其他回答共3 条我的博客上有三首连放的,你只要加两首就行了。

基于凌阳单片机,用C语言设计的mp3播放器程序!!

基于凌阳单片机,用C语言设计的mp3播放器程序!!

基于凌阳单片机,用C语言设计的mp3播放器程序!!浏览次数:1160次悬赏分:50 |提问时间:2008-9-5 22:01 |提问者:573109893|问题为何被关闭必须用C语言设计的程序,而且还必须基于凌阳单片机之上。

请各位大虾帮帮忙!跪求!!悬赏50分!!!事成之后再送50分!!其他回答共1条Public Class Form1Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码"Public Sub New()MyBase.New()'该调用是Windows 窗体设计器所必需的。

InitializeComponent()'在InitializeComponent() 调用之后添加任何初始化End Sub'窗体重写dispose 以清理组件列表。

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)If disposing ThenIf Not (components Is Nothing) Thencomponents.Dispose()End IfEnd IfMyBase.Dispose(disposing)End Sub'Windows 窗体设计器所必需的Private components As ponentModel.IContainer'注意: 以下过程是Windows 窗体设计器所必需的'可以使用Windows 窗体设计器修改此过程。

'不要使用代码编辑器修改它。

Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem6 As System.Windows.Forms.MenuItemFriend WithEvents MenuItem7 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem8 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem9 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem10 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem11 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem12 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem13 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem14 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem15 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem16 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem17 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem18 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem19 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem20 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem21 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem22 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem23 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem24 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem25 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem26 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem27 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem28 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem29 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem30 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem31 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem32 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem33 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem34 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem35 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem36 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem37 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem38 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem39 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem40 As System.Windows.Forms.MenuItem Friend WithEvents AxMediaPlayer1 As AxMediaPlayer.AxMediaPlayer Friend WithEvents OpenFileDialog1 AsSystem.Windows.Forms.OpenFileDialog<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Me.MainMenu1 = New System.Windows.Forms.MainMenuMe.MenuItem1 = New System.Windows.Forms.MenuItemMe.MenuItem2 = New System.Windows.Forms.MenuItemMe.MenuItem3 = New System.Windows.Forms.MenuItemMe.MenuItem6 = New System.Windows.Forms.MenuItemMe.MenuItem7 = New System.Windows.Forms.MenuItemMe.MenuItem8 = New System.Windows.Forms.MenuItemMe.MenuItem9 = New System.Windows.Forms.MenuItemMe.MenuItem10 = New System.Windows.Forms.MenuItemMe.MenuItem11 = New System.Windows.Forms.MenuItemMe.MenuItem12 = New System.Windows.Forms.MenuItemMe.MenuItem13 = New System.Windows.Forms.MenuItemMe.MenuItem14 = New System.Windows.Forms.MenuItemMe.MenuItem15 = New System.Windows.Forms.MenuItemMe.MenuItem16 = New System.Windows.Forms.MenuItemMe.MenuItem17 = New System.Windows.Forms.MenuItemMe.MenuItem18 = New System.Windows.Forms.MenuItemMe.MenuItem19 = New System.Windows.Forms.MenuItemMe.MenuItem20 = New System.Windows.Forms.MenuItemMe.MenuItem21 = New System.Windows.Forms.MenuItemMe.MenuItem22 = New System.Windows.Forms.MenuItemMe.MenuItem23 = New System.Windows.Forms.MenuItemMe.MenuItem24 = New System.Windows.Forms.MenuItemMe.MenuItem25 = New System.Windows.Forms.MenuItemMe.MenuItem26 = New System.Windows.Forms.MenuItemMe.MenuItem27 = New System.Windows.Forms.MenuItemMe.MenuItem28 = New System.Windows.Forms.MenuItemMe.MenuItem29 = New System.Windows.Forms.MenuItemMe.MenuItem30 = New System.Windows.Forms.MenuItemMe.MenuItem31 = New System.Windows.Forms.MenuItemMe.MenuItem32 = New System.Windows.Forms.MenuItemMe.MenuItem33 = New System.Windows.Forms.MenuItemMe.MenuItem34 = New System.Windows.Forms.MenuItemMe.MenuItem35 = New System.Windows.Forms.MenuItemMe.MenuItem36 = New System.Windows.Forms.MenuItemMe.MenuItem37 = New System.Windows.Forms.MenuItemMe.MenuItem38 = New System.Windows.Forms.MenuItemMe.MenuItem39 = New System.Windows.Forms.MenuItemMe.MenuItem40 = New System.Windows.Forms.MenuItemMe.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog ''MainMenu1'Me.MainMenu1.MenuItems.AddRange(NewSystem.Windows.Forms.MenuItem() {Me.MenuItem1, Me.MenuItem7, Me.MenuItem13, Me.MenuItem29, Me.MenuItem37})''MenuItem1'Me.MenuItem1.Index = 0Me.MenuItem1.MenuItems.AddRange(NewSystem.Windows.Forms.MenuItem() {Me.MenuItem2, Me.MenuItem3, Me.MenuItem6})Me.MenuItem1.Text = "文件(&F)"''MenuItem2'Me.MenuItem2.Index = 0Me.MenuItem2.Text = "打开(&O)"''MenuItem3'Me.MenuItem3.Index = 1Me.MenuItem3.Text = "-"''MenuItem6'Me.MenuItem6.Index = 2Me.MenuItem6.Text = "退出(&E)"''MenuItem7'Me.MenuItem7.Index = 1Me.MenuItem7.MenuItems.AddRange(NewSystem.Windows.Forms.MenuItem() {Me.MenuItem8, Me.MenuItem9, Me.MenuItem10, Me.MenuItem11, Me.MenuItem12})Me.MenuItem7.Text = "播放(&P)"''MenuItem8'Me.MenuItem8.Index = 0Me.MenuItem8.Text = "播放(&P)"''MenuItem9'Me.MenuItem9.Index = 1Me.MenuItem9.Text = "-"''MenuItem10'Me.MenuItem10.Index = 2Me.MenuItem10.Text = "暂停(&A)"''MenuItem11'Me.MenuItem11.Index = 3Me.MenuItem11.Text = "-"''MenuItem12'Me.MenuItem12.Index = 4Me.MenuItem12.Text = "停止(&S)"''MenuItem13'Me.MenuItem13.Index = 2Me.MenuItem13.MenuItems.AddRange(NewSystem.Windows.Forms.MenuItem() {Me.MenuItem14, Me.MenuItem15, Me.MenuItem16, Me.MenuItem17, Me.MenuItem18, Me.MenuItem19, Me.MenuItem20, Me.MenuItem21, Me.MenuItem22, Me.MenuItem23, Me.MenuItem24, Me.MenuItem25, Me.MenuItem26, Me.MenuItem27, Me.MenuItem28})Me.MenuItem13.Text = "视图(&V)"''MenuItem14'Me.MenuItem14.Index = 0Me.MenuItem14.Text = "标准模式(&S)"''MenuItem15'Me.MenuItem15.Index = 1Me.MenuItem15.Text = "-"''MenuItem16'Me.MenuItem16.Index = 2Me.MenuItem16.Text = "精简模式(&M)"''MenuItem17'Me.MenuItem17.Index = 3Me.MenuItem17.Text = "-"''MenuItem18'Me.MenuItem18.Index = 4Me.MenuItem18.Text = "最小模式(&I)" ''MenuItem19'Me.MenuItem19.Index = 5Me.MenuItem19.Text = "-"''MenuItem20'Me.MenuItem20.Index = 6Me.MenuItem20.Text = "全屏模式(&F)" ''MenuItem21'Me.MenuItem21.Index = 7Me.MenuItem21.Text = "-"''MenuItem22'Me.MenuItem22.Index = 8Me.MenuItem22.Text = "双倍模式(&D)" ''MenuItem23'Me.MenuItem23.Index = 9Me.MenuItem23.Text = "-"''MenuItem24'Me.MenuItem24.Index = 10Me.MenuItem24.Text = "详细信息(&X)" ''MenuItem25'Me.MenuItem25.Index = 11Me.MenuItem25.Text = "-"''MenuItem26'Me.MenuItem26.Index = 12Me.MenuItem26.Text = "统计信息(&J)" ''MenuItem27'Me.MenuItem27.Text = "-"''MenuItem28'Me.MenuItem28.Index = 14Me.MenuItem28.Text = "快捷菜单(&C)"''MenuItem29'Me.MenuItem29.Index = 3Me.MenuItem29.MenuItems.AddRange(NewSystem.Windows.Forms.MenuItem() {Me.MenuItem30, Me.MenuItem31, Me.MenuItem32, Me.MenuItem33, Me.MenuItem34, Me.MenuItem35, Me.MenuItem36})Me.MenuItem29.Text = "设置(&S)"''MenuItem30'Me.MenuItem30.Index = 0Me.MenuItem30.Text = "属性设置(&P)"''MenuItem31'Me.MenuItem31.Index = 1Me.MenuItem31.Text = "-"''MenuItem32'Me.MenuItem32.Index = 2Me.MenuItem32.Text = "静音设置(&S)"''MenuItem33'Me.MenuItem33.Index = 3Me.MenuItem33.Text = "-"''MenuItem34'Me.MenuItem34.Index = 4Me.MenuItem34.Text = "增大音量(&I)"''MenuItem35'Me.MenuItem35.Text = "-"''MenuItem36'Me.MenuItem36.Index = 6Me.MenuItem36.Text = "减小音量(&D)"''MenuItem37'Me.MenuItem37.Index = 4Me.MenuItem37.MenuItems.AddRange(NewSystem.Windows.Forms.MenuItem() {Me.MenuItem38, Me.MenuItem39, Me.MenuItem40})Me.MenuItem37.Text = "帮助(&H)"''MenuItem38'Me.MenuItem38.Index = 0Me.MenuItem38.Text = "帮助(&H)"''MenuItem39'Me.MenuItem39.Index = 1Me.MenuItem39.Text = "-"''MenuItem40'Me.MenuItem40.Index = 2Me.MenuItem40.Text = "关于(&A)"''OpenFileDialog1'Me.OpenFileDialog1.Filter = "所有影音文件(*.avi,*.mpg,*.dat)|*.avi;*.mpg;*.dat|所有文件(*.*)|*.*"''Form1'Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)Me.ClientSize = New System.Drawing.Size(360, 190)Me.Menu = Me.MainMenu1 = "Form1"Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "演示播放VCD电影"End Sub#End Region'打开Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.ClickIf Me.OpenFileDialog1.ShowDialog() = DialogResult.OK ThenMe.AxMediaPlayer1.FileName = Me.OpenFileDialog1.FileNameEnd IfEnd Sub'退出Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem6.ClickMe.Close()End Sub'播放Private Sub MenuItem8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem8.ClickTryMe.AxMediaPlayer1.Play()Catch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'暂停Private Sub MenuItem10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem10.ClickTryMe.AxMediaPlayer1.Pause()Catch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'停止Private Sub MenuItem12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem12.ClickTryMe.AxMediaPlayer1.Stop()Catch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'标准模式Private Sub MenuItem14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem14.ClickTryMe.AxMediaPlayer1.DisplaySize =MediaPlayer.MPDisplaySizeConstants.mpDefaultSizeCatch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'精简模式Private Sub MenuItem16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem16.ClickTryMe.AxMediaPlayer1.DisplaySize =MediaPlayer.MPDisplaySizeConstants.mpFitToSizeCatch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'最小模式Private Sub MenuItem18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem18.ClickTryMe.AxMediaPlayer1.DisplaySize =MediaPlayer.MPDisplaySizeConstants.mpOneSixteenthScreenCatch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'全屏模式Private Sub MenuItem20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem20.ClickTryMe.AxMediaPlayer1.DisplaySize =MediaPlayer.MPDisplaySizeConstants.mpFullScreenCatch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'双倍模式Private Sub MenuItem22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem22.ClickTryMe.AxMediaPlayer1.DisplaySize =MediaPlayer.MPDisplaySizeConstants.mpDoubleSizeCatch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'详细信息Private Sub MenuItem24_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem24.Click'使用NOT操作符简化代码Me.AxMediaPlayer1.ShowDisplay = Not Me.AxMediaPlayer1.ShowDisplay '判断并设置菜单的复选标记If Me.AxMediaPlayer1.ShowDisplay = True ThenMe.MenuItem24.Checked = TrueElseMe.MenuItem24.Checked = FalseEnd IfEnd Sub'统计信息Private Sub MenuItem26_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem26.ClickTryMe.AxMediaPlayer1.ShowDialog(MediaPlayer.MPShowDialogConstants.mpS howDialogStatistics)Catch ex As ExceptionMessageBox.Show("可能没有打开媒体文件!", "信息提示", MessageBoxButtons.OK, rmation)End TryEnd Sub'快捷菜单Private Sub MenuItem28_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem28.ClickMe.AxMediaPlayer1.ShowDialog(MediaPlayer.MPShowDialogConstants.mpS howDialogContextMenu)End Sub'属性设置Private Sub MenuItem30_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem30.ClickMe.AxMediaPlayer1.ShowPropertyPages()'Me.AxMediaPlayer1.ShowDialog(MediaPlayer.MPShowDialogConstants.mpS howDialogOptions)End Sub'静音设置Private Sub MenuItem32_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem32.Click'使用Not操作符简化编码Me.AxMediaPlayer1.Mute = Not Me.AxMediaPlayer1.Mute'添加Check标记If Me.AxMediaPlayer1.Mute = True ThenMe.MenuItem32.Checked = TrueElseMe.MenuItem32.Checked = FalseEnd IfEnd Sub'增大音量Private Sub MenuItem34_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem34.ClickMe.AxMediaPlayer1.Volume = Me.AxMediaPlayer1.Volume + 100End Sub'减小音量Private Sub MenuItem36_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem36.ClickMe.AxMediaPlayer1.Volume = Me.AxMediaPlayer1.Volume - 100End Sub'帮助Private Sub MenuItem38_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem38.ClickMe.AxMediaPlayer1.ShowDialog(MediaPlayer.MPShowDialogConstants.mpS howDialogHelp)End Sub'关于Private Sub MenuItem40_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem40.ClickMe.AxMediaPlayer1.ShowAboutBox()End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadEnd SubEnd Class你看看是不是你要的,不是的话我还有别的注意了,在你运行的时候可能会出现AxMediaPlayer为导入的提示,这时候你在菜单栏里的工具-> 添加移除工具箱,选择COM组件,点浏览,,在C:\WINDOWS\SYSTEM32\MSDXM.OCX这个文件并打开,这时候会增加一个windows media player的控件,使用它就可以了。

自己设计的MP3播放器(VC)

自己设计的MP3播放器(VC)

m_button2.SizeToContent();
m_button3.SizeToContent();
m_button5.SizeToContent();
play.SizeToContent();
zanting.SizeToContent();
pre.SizeToContent();
: CDialog(CMp3playerDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMp3playerDlg::DoDataExchange(CDataExchange* pDX)
{
ON_WM_TIMER()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_T, &CMp3playerDlg::OnClickedT)
//ON_NOTIFY(HDN_ITEMDBLCLICK, 0, &CMp3playerDlg::OnItemdblclickList1)
{
// TODO: 在此添加控件通知处理程序代码
/*int n=m_tab.GetCurSel();
switch(n)
{
case 1:
{
GetDlgItem(IDC_SOUSUOMULU)->ShowWindow(false);
GetDlgItem(IDC_SOUSUOMULU2)->ShowWindow(false);
// Mp3playerDlg.cpp : 实现文件
#include "stdafx.h"

MP3c语言源代码

MP3c语言源代码
static HANDLE hSlider;
static MCI_PLAY_PARMS mciPlay;
static MCI_OPEN_PARMS mciOpen;
static MCI_DGV_SETAUDIO_PARMS mciSetAudioPara;
memset(FileName, 0, sizeof(FileName) );
FileNames.hInstance = NULL ;
FileNames.lpstrFilter = szFilter ;
FileNames.lpstrCustomFilter = NULL ;
FileNames.nMaxCustFilter = 0 ;
}
c[7+i+j]=a[7];
c[8+i+j]=a[8];
memcpy(szFilter, c,100);
FileNames.lStructSize = sizeof (OPENFILENAME) ;
FileNames.hwndOwner = hwnd ;
FileNames.nFilterIndex = 0 ;
FileNames.lpstrFile = szFileName ;
FileNames.nMaxFile = MAX_PATH ;
FileNames.lpstrFileTitle = szTitleName ;
return 0;
}
mciSetAudioPara.dwValue = iPosition*10;
mciSendCommand(mciOpen.wDeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM,(DWORD)(LPVOID)&mciSetAudioPara);

VC编写音频播放器

VC编写音频播放器
Softeem Consultancy Servicsultancy Service
程序效果
音乐播放器可以播放Windows下常用的音频和视 频文件,如MP3、MIDI、WAV、WMA等。程序 的界面如图所示。用户可通过文件对话框添加想 要播放的文件和删除音乐文件,并可实现暂停、 关闭或重播的功能,并显示播放的时间和正在播 放文件的全路径和文件名,同时,在媒体文件播 放的过程中,用户可随时调节音,还可以设置播 放模式,如单曲循环,顺序播放等,同时,可以 同步歌词。
Softeem Consultancy Service
3,界面布局。在对话框中添加相应的控件,完成相应功能,最终效果如图:
Softeem Consultancy Service
4.进行对话框、控件的相应美化。 (1)给对话框添加背景 (2)给按钮添加位图 (3)使静态文本透明
实现播放音乐
Windows MCI与多媒体软件开发 Windows MCI(Media Control Interface)是控制多媒体设备的高层命令接口, 提供了与设备无关的控制多媒体设备的方法。MCI可控制的多媒体设备包括标准 的多媒体设备,如CD音频(CD Audio)、数字视频、动画、Wave格式数字声 音和MIDI音序器,以及影碟机等可选设备。MCI包含在Windows系统的 MMSYSTEM.DLL动态链接库中,用以协调多媒体事件和MCI设备驱动程序之间 的通信。一些MCI设备驱动程序,影碟机设备驱动程序,可以直接控制目标设备 ;另外一些MCI 设备驱动程序,如Wave和MIDI 设备驱动程序,通过 MMSYSTEM中的函数间接控制目标设备;还有一些MCI设备驱动程序则提供了 与其他Windows动态链接库的高层接口。MCI提供两种不同但相互联系的接口方 式。第一种方式利用消息和数据结构来给多媒体设备发送命令并接收设备传来的 信息,这种方法用函数mciSendCommand来给设备发送命令。其原型为:

c语言编写的音乐播放器源代码)

c语言编写的音乐播放器源代码)

include <windows.h> #include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>unsigned frequency[100];char hight[100];unsigned time[100];unsigned rate;void main(){voidset(unsignedf[],charh[],unsignedt[],int r,int num);void music(unsigned f[],unsigned t[],intnum);int flag=0;FILE *f1;int i,n,menu;char FileName[30];while(1){f1=NULL;i=n=0;printf("本程序采用编码的形式播放音乐。

\n");printf("\n用记事本编辑乐谱,然后通过输入文件名播放音乐\n");printf("乐谱文件可以自创,也可以抄别人的\n");printf("\n现在可以先输入数字再按回车播放音乐:\n");printf("1播放指定音乐music1\n");printf("2播放指定音乐music2\n");printf("3通过程序文件名播放音乐\n");printf("4退出\n");while(1){printf("menu=");scanf("%d",&menu);if(menu==1) {strcpy(FileName,"music1.txt");break;}if(menu==2){strcpy(FileName,"music2.txt");break;}if(menu==3){scanf("%s",FileName);break;}if(menu==4)exit(0);}printf("\n该文件的音乐编码如下:\n");if((f1=fopen(FileName,"r"))==NULL){ printf("不能打开文件!\n");exit(1);}fscanf(f1,"%d",&rate);while(!feof(f1)&&flag!=1){fscanf(f1," %d%c%d",&frequency[i],&hight[i],&time[i]);printf("%d%c%d",frequency[i],hight[i],time[i]);if(time[i]!=-1){i++;n++;}elseflag=1;}printf("\n");set(frequency,hight,time,rate,n);music(frequency,time,n);fclose(f1);}getch();}void set(unsigned f[],char h[],unsigned t[],int r,int num){int i,k;for(i=0;i<num;i++){t[i]=t[i]*r;switch(h[i]){case 'H':k=4;break;case 'M':k=2;break;case 'L':k=1;}switch(f[i]){case 1: f[i]=262*k; break;case 2: f[i]=296*k; break;case 3: f[i]=330*k; break;case 4: f[i]=349*k; break;case 5: f[i]=392*k; break; case 6: f[i]=440*k; break;case 7: f[i]=494*k; break;} }}voidmusic(unsignedf[],unsignedt[],intnum){int i;for(i=0;i<num;i++){Beep(f[i],t[i]);}。

C语言实现音乐播放器

C语言实现音乐播放器

C语言实现音乐播放器音乐是人们生活中不可或缺的一部分,而音乐播放器则是让人们能够随时随地欣赏自己喜爱的音乐的工具。

本文将介绍如何使用C语言来实现一个简单的音乐播放器。

一、背景介绍在开始介绍之前,我们先了解一下C语言。

C语言是一种通用的高级计算机程序设计语言,它广泛应用于软件开发、嵌入式系统、操作系统等领域。

C语言具有简洁、高效、灵活等特点,非常适合用来实现音乐播放器这样的应用程序。

二、功能设计一个音乐播放器需要具备以下几个基本功能:1. 播放音乐:能够将音乐文件加载到内存中,并通过音频设备进行播放。

2. 暂停和继续播放:能够控制音乐的播放状态,实现暂停和继续播放功能。

3. 调节音量:能够通过控制音频设备的音量来调节音乐的播放音量。

4. 播放进度条:能够显示当前音乐的播放进度,并能够通过拖动进度条来控制播放进度。

5. 播放列表:能够显示已加载的音乐文件,并能够选择要播放的音乐。

6. 循环播放:能够实现单曲循环、列表循环和随机播放等不同播放模式。

三、技术实现1. 文件加载:使用C语言的文件操作函数,如fopen、fread等,将音乐文件加载到内存中,也可以使用第三方库来简化操作。

2. 音频播放:使用C语言的音频库,如ALSA、SDL等,通过调用相应的函数实现音频播放。

3. 用户界面:使用C语言的图形库,如GTK、SDL等,创建用户界面并实现各种交互操作。

4. 音频处理:使用C语言的音频处理库,如libao、libmad等,对音乐文件进行解码和处理。

5. 播放控制:使用C语言的多线程或事件驱动机制,实现播放控制功能,包括播放、暂停、继续、音量调节等。

6. 播放列表:使用C语言的链表或数组等数据结构,保存已加载的音乐文件,并能够根据用户选择进行切换和播放。

7. 进度条:使用C语言的图形库,绘制并更新进度条的显示,并通过鼠标或键盘事件实现拖动进度条来控制播放进度。

8. 播放模式:使用C语言的条件语句和控制流程,实现不同的播放模式,并能够根据用户选择切换不同的播放模式。

用C语言编写的MP3简易播放程序

用C语言编写的MP3简易播放程序

//////////////////////////////////////////////////////////////////////////
HRESULT InitDirectShow()
{
HRESULT hr;
CoInitialize(NULL); //初始化COM
//创建各个对象
}
quit:
FreeDirectShow();
return 0;
}
printf("请输入文件名:");
scanf("%s", path);
printf("正在处理命令...\n", cmd, path);
if(FAILED(LoadMusicFile(path)))
{
printf("载入文件“%s”失败!\n", path);
}
else if(!stricmp(cmd, "s"))
Stop();
else if(!stricmp(cmd, "e"))
goto quit;
else
{
printf("无法识别的命令");
getch();
}
}
//////////////////////////////////////////////////////////////////////////
//变量定义:
IGraphBuilder* pGBuilder;
IMediaControl* pMControl;
IMediaPosition* pMPos;

控制台C语言编写音乐播放器主要功能

控制台C语言编写音乐播放器主要功能

控制台C语言编写音乐播放器主要功能音乐播放器是一种可以播放音乐文件的应用程序,具有多种功能来帮助用户管理和播放音乐。

下面是控制台C语言编写音乐播放器的主要功能:1.音乐:用户可以通过输入歌曲名或艺术家来他们想要播放的音乐。

功能也可以根据关键词进行过滤和排序。

2.音乐播放:一旦用户找到他们想要听的歌曲,他们可以选择播放它。

音乐播放器应该能够打开并解码音乐文件,然后通过音频设备播放音乐。

4.歌曲信息显示:在播放音乐的同时,音乐播放器应该显示歌曲的相关信息,如歌曲名、艺术家、专辑名、歌词等。

这些信息可以从音乐文件的元数据中获取。

5.音乐控制:音乐播放器应该具有基本的音乐控制功能,如播放、暂停、停止、上一首、下一首等。

用户可以通过命令来控制音乐的播放状态。

6.音量控制:用户可以通过增加或减少音量来调整音乐的音量。

音乐播放器应该能够调整音频设备的输出音量。

7.重复和随机播放:用户可以选择歌曲的播放模式,如顺序播放、循环播放、随机播放等。

音乐播放器应该能够根据用户的选择来调整播放模式。

9.用户界面:音乐播放器应该有一个简洁而直观的用户界面,允许用户轻松地浏览、和管理自己的音乐。

用户界面可以使用控制台界面或基于文本的界面。

10.错误处理:音乐播放器应该能够处理各种错误情况,如无效的输入、文件不存在、解码错误等。

它应该能够向用户显示有关错误的信息,并采取适当的措施来避免应用程序崩溃。

11.文件格式支持:音乐播放器应该支持多种常见的音乐文件格式,如MP3、WAV、FLAC等。

它应该能够根据文件格式选择合适的解码器。

12.常规设置:音乐播放器应该具有一些常规设置,如默认音量、默认播放模式、快捷键等。

用户可以根据自己的需求来调整这些设置。

以上是控制台C语言编写音乐播放器的主要功能。

根据以上功能,你可以开始设计和编写一个简单的音乐播放器应用程序。

当然,你可以根据个人需求和编程能力来扩展和优化这些功能。

C语言实现mp3设计文档

C语言实现mp3设计文档

Mp3 音乐播放器设计文档一、需求:名称:mp3音乐播放器目的:随时随地播放音乐、动画,查看文本文件输入:一个电源开关,一个确定按钮,上、下按钮,USB接口输出:液晶显示屏,耳机功能:可以从PC上下载各种电脑文件,具有移动存储的功能;能够识别并播放音乐文件,同步显示歌词,可以调节音效;显示.txt文本文件;性能:按钮刚按下即可刷新屏幕,所有操作在0.5秒内执行完毕生产成本:低于100元功耗:200mW物理尺寸和重量:体积不大于5cm*3cm*1cm;重量轻于100g二、规格说明1、概要规格说明系统的功能至少包括:接收从PC上下载的各类电脑文件并长久保存;执行用户选择的操作;列举所有音频文件,根据用户的选择播放任何一个文件,如有歌词则显示歌词;列举所有文本文件,根据用户选择显示任何一个;用例图:加电后的MP3执行过程:操作系统加载完成后,处于监听状态,在用户选择完需要完成的动作后,由操作系统调用相关对象的方法来实现其功能。

2、详细规格说明:所有的类及其成员变量、方法都归在类图之中Translate类:将数据转化成可以在LCD屏幕上显示的格式;Panel类:管理在屏幕上显示的各个选项,可以高亮表示选择,需要保存所有显示的item;FileSystem类:管理mp3中的所有可以识别的文件,可以读取、添加和删除文件;File类:抽象类,各个文件类型必须继承该类;Music类:表示音频文件类型,可以控制音频文件的播放、暂停、停止;TextFile类:表示文本文件类型,可以显示文本文件;Lyric类表示与音乐相关的歌词文件;Voice类:管理音乐的声音大小、播放模式(如摇滚、古典、流行等)ChangeSignal类:将音频文件转变成模拟信号,传输给耳机等外设。

当用户指定执行某种功能的时候,由操作系统来调用各个类的相关方法。

以下为某次用户要求播放某个音乐文件的顺序图:系统从FileSystem对象中获取文件,在Panel对象中显示出来,用户选择需要播放的音乐文件后,由Music对象播放;同时可以可以通过Voice对象调节音量;在播放结束后,Panel对象更新要显示的内容;每次更新后,都要由TranslateToLCD对象将其送到屏幕显示。

C语言实现Mini-Cooledit音频播放器

C语言实现Mini-Cooledit音频播放器
m_playslider.SetPos(0);
GetDlgItem(IDC_play)->SetWindowText("播放");
mciSendCommand(m_DeviceID, MCI_STOP, NULL, NULL);
mciSendCommand(m_DeviceID, MCI_SEEK, MCI_SEEK_TO_START, NULL);
//获得文件播放的当前位置
MCI_STATUS_PARMS mcistatusparms;
mcistatusparms.dwItem = MCI_STATUS_POSITION;
mcistatusparms.dwReturn = 0;
mciSendCommand(m_DeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPMCI_STATUS_PARMS)&mcistatusparms);
m_playslider.SetRange(0,mciStatusParam.dwReturn);
m_playslider.SetPos(0);
m_volumeslider.SetRange(0,100);
m_volumeslider.SetPos(100);
}
wav文件的播放与停止
void CMiniDlg::Onplay()
mciSendCommand(m_DeviceID, MCI_STATUS,MCI_WAIT | MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatusParam);
str.Format("%d",mciStatusParam.dwReturn);

mp3音乐播放器c语言版

mp3音乐播放器c语言版

调节音量大小 进入播放选项 返回上层 顺序播放 随机播放 循环播放 单曲循环 单曲播放 查找歌曲 上一首 下一首 停止播放 暂停播放 继续播放 显示播放信息 快进 快退 查看文件长度 切换播放列表 3.2外部接口 显示器、键盘、鼠标、音响设备。 3.3内部接口 void menu(); //主菜单显示 void introduction(); //版本介绍 void play_menu(); //播放菜单 void mode_menu(); //播放菜单调用的模板 void creat(); //创建链表 void input(); //输入新的信息 void show(); //显示列表信息 int str(struct media * head);//求链表长度 void load(); //从文件中加载信息void lookup(); //查找歌曲信息 void lookup_show(); //查找歌曲并显示 void single_play(); //单曲播放 void order_list_play(); //列表顺序播放 void cyc_single_play(); //单曲循环播放

二:播放列表管理 1.添加歌曲:添加歌曲的时候可以在本播放列表下进行添加,也可以选择输入播放列 表的路径进行歌曲的添加,在一次播放中列表之间可以进行相互的切换,但是一次只能显示一个路径下的列表。 2.选择歌曲:选择歌曲中实现查找歌曲,你可以先查看播放列表,也可以直接输入歌曲的名字进行 查找,如果查找到歌曲,会输出你查找到的歌曲,如果查找没有此歌曲会显示没有此歌曲,然后返回主菜单。 3.三.播放器友好性要求 1.视觉外观:进入播放器时,界面简洁大方,让人一目了然。具有简单易用的特性。 2.系统使用播放器时能显示播放器的状态,当前播放的歌曲名称和路径。 2.2界面需求: 播放器界面要求布局合理,颜色舒适。 2.3性能需求 (1)当要求歌曲播放时,软件响应时间最长不超过1秒 (2)当要求歌曲暂停时,软件响应时间最长不超过1秒 (3)播放歌曲,采用立体声播放,文件流畅 2.4可靠性要求 系统能持续运行,不影响其他程序的使用,不多占用内存,不会造成死机等问题。 2.5运行环境需求 操作系统:WindowsXP/windows7 1引言 1.1编写目的 本系统设计说明书用于描述mp3播放器项目的整体系统设计方案,本说明书是系统详细设计的依据,也作为系统测试需求和系 统测试计划和测试程序的重要参考。 1.2背景 说明: 1.软件名称:MP3播放器。 2.开发小组成员:胥站峰 3.软件平台:windows操作系统。 1.3定义 MP3(MPEGAudioLayer-3)是一种数字音频压缩技术,数字压缩速率达到每通道128kbps,数比例可以达到12:1。MP3播放器的主 要作用就是解压压缩的MP3数字音频,再现MP3音乐,同时为携带方便还要能存贮MP3文件,MP3歌曲可以从电脑上下载。MP3 播放器主要由MP3文件解码部分、文件存贮部分、文件下载接口和语音播放部分构成。根据解码的方法播放器可分为软解码 和硬解码两种:软解码是利用控制软件解压缩MP3文件,它要求言程序设计——清华大学出版社 c数据结构——清华大学出版社。

毕业设计:C语言的应用(MP3的设计过程)

毕业设计:C语言的应用(MP3的设计过程)

MP3程序设计过程MP3(U盘)程序由两在部分组成:MP3播放功能和USB通信功能。

本部分介绍程序的整体结构。

MP3播放器部分的设计MP3播放器程序要与键盘配合起来设计。

下面是MP3部分的主程序。

printu(“Entering MP3…\n”);Flash_Reset(); // Flash复位MP3Init(); //MP3初始化KeyBoadInit(); //键盘初始化EA=1; //开中断,键盘可以开始工作NumofSong=GetMP3List(); //得到U盘中的MP3歌曲列表printuf(“Song:%x\n”,NumofSong); //输出歌曲总数信息P3_5=0; //USB灯亮,此灯亮后,可以按Play键开始播放MP3歌曲While(1){if(PlayState==PLAY) PlayMP3(&SONG[11*NowPlaying]);//如果处于播放状态,则播放当前歌曲if(NowPlaying==NumofSong) PlayState=STOP;//全部歌曲播放完了,播放器停止}在主程序时,如果处于播放状态,则调用PlayMP3程序播放歌曲,直至播放到最后一首。

在PlayMP3里面,MP3解码器一旦开始工作以后,就会一直向CPU请求数据,直至歌曲结束。

程序进入此函数以后,只有改变当前歌曲的键盘操作才会使此函数提前结束,进入下一首歌的播放。

void PlayMP3(unsigned char *SongName){int i=0,j=0;//First 1024 Byte MP3 Datam=ReadSector(SongName,Page_Buf); //从当前歌曲中读取512字节if(MP3STA1&MPFREQ) //解码器数据请求中断产生时{for(i=0;i<1024;i++) //第一次要向解码器缓存中置入1024字节{if(j==512) //当用完512字节时{m=ReadSecror(SongName,Page_Buf);//读取当前歌曲的下一个512字节j=0;}MP3DAT=Page_Buf[j++]; //向MP3解码器数据寄存器送入一个数while(!PlayState); //如果是暂停状态则等待while(ChangeSong){DateRead=0;ChangeSong=0;return;}//如果选曲时,则重新播放当前曲目while(!(MP3STA1&MPBREQ)); //等待中断再次产生}}while(1){while(MP3STA1&MPFREQ) //解码器数据请求中断产生时if(j==512){ //当用完512字节时j=0;if(m<512){NowPlaying++;return;}//如果上一次从歌曲中读出的数据不足512时,则结束本歌曲播放m=ReadSecter(SongName,Page_Buf);//读取当前歌曲的下一个512字节}MP3DAT=Page_Buf[j++]; //向MP3解码器数据寄存器送入一个数while(!PlayState); //如果是暂停状态则等待while(ChangeSong){DateRead=0;ChangeSong=0;return;}//如果选曲时,则重新播放当前曲目while(!(MP3STA1&MPBREQ)); //等待中断再次产生}}MP3播放函数的工作分两部分进行,第一部分是播放一首新的MP3歌曲时,要做一些初始化工作。

用c制作的简单音乐播放器课程设计报告

用c制作的简单音乐播放器课程设计报告

用C制作的简单音乐播放器课程设计报告计算机科学与技术学部C++课程设计题U简单音乐播放器学部计算机科学与技术班级指导教师姓名2012年6月13日音乐播放器,是U前用户选择播放任童格式的音频文件的软件,如酷狗、音乐等。

一般的音频播放器,都可以支持MP3、wave. AU. VOC等文件格式的播放。

在此次设计的音频播放其中,可以实现对音频文件的打开、播放、暂停、停止、上一曲/下一曲、音量调控等操作。

山于MCI (Media Controller Interface)命令接口编程易于实现,具有体积小、支持的播放格式多、系统资源占有少等优点,同时MCI支持播放列表编辑、支持文件的打开、保存等功能,所以本课题利用Visual C++ 6.0作为开发环境,结合其自带的MCI函数库和MVC设计思想开发一个简洁实用的播放器软件,为用户提供一个友好的图形化操作界面。

关键词:媒体播放器;播放列表;音频;MCI函数课程设计任务分配表表1信息表姓名主要工作组长周德群负责整个工程设计的选材和功能的添加以及代码的设计,负责工程的功能测试与修改。

组员胡中立负责对话框的设计.制作、控件的添加。

课程设讣成绩表表2成绩表姓名学号班级成绩组长周徳群063 1103组员胡中立054 1103 U录第1章课题背景和概述21课题背景21.1音频播放器简介21.2 U的和意义22课题概述22.1功能简介22.2主要工作和理论依据.3第2章设il•简介及设计方案论述4 2.1需求分析42.2系统功能及结构简介22 1系统功能4222系统结构4第3章详细设计53.1界面设计53. 1. 1播放器界面设计53.1.2按钮上的位图显示3. 2各模块功能设计63. 2. 1各按钮功能的实现3. 2.2进度条显示7第4章设计结果及分析84.1运行结果显示94. 1. 1打开文件并播放104.2结果分析和不足10总结11参考文献12附录13音频播放器(audio player)是一种可储存、组织与播放音讯档案格式装置。

用VC做一个无需控件支持的MP3播放器

用VC做一个无需控件支持的MP3播放器

用VC做一个无需控件支持的MP3播放器发布时间:2004.02.27 11:56 来源:赛迪网作者:lilipuss笔者最近阅读了一篇名为《MP3钝器速成》的文章,文中介绍了借助一个名为TmediaPlayer控件用delphi构建MP3播放器的方法。

文章提到TmediaPlayer是调用操作系统内置的MP3解码引擎来实现播放MP3的,那么我们为什么不直接调用这个引擎呢?不用控件岂不是更好?笔者经过一番实践,找到了一种可以实现的方法。

本文将以一个用VC编写的实例来介绍这种不需控件的方法。

1.制作原理首先,让我们先来了解一下MCI(Media Control Interface)媒体控制接口。

MCI是MircroSoft 提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频、视频、影碟、录像等多媒体设备,而不需要知道它们的内部工作状况。

它所支持的媒体格式包括avi、wav、mpeg、cda等等。

由于Windows内置了MP3播放引擎MCI也支持MP3,但由于某种不为我们所知的原因,Microsoft并没有公开MCI的这个访问功能。

我们所要做的就是利用这一非公开的访问接口直接调用系统内置引擎实现MP3的播放。

在windows的系统配置文件system.ini(C:\windows\)中有一个[MCI]配置项,该项下列出了通过MCI接口所接受的MCI设备类型与所调用引擎的对应关系,如:mci]cdaudio=mcicda.drvsequencer=mciseq.drvwaveaudio=mciwave.drvavivideo=mciavi.drv我们只需添加条目:mp3audio=mciqtz.drv其中mciqtz.drv即MP3播放引擎驱动。

我们在通过MCI接口编程时只要显式地指明所使用的设备类型为mp3audio,即可实现播放MP3的目的。

余下的工作就只是通过调用MCI接口函数实现播放器的功能了。

控制台 C语言编写音乐播放器主要功能

控制台 C语言编写音乐播放器主要功能

#include "FM_Main.h"#include"CTL.H"#include<stdio.h>#include<windows.h>#include<mmsystem.h>#include"GUI.h"#include"ERR_CheckEnter.h"#pragma comment(lib,"winmm.lib")#include "FM_CheckFile.c"#include"FM_Choose.c"#include"FM_List.c"#include "FM_Path.c"int Order=1; //初始时为第一首歌,随音乐切换而切换--nextsong() int NewOrder=0;int Amount = 0; //歌曲总量int begin; //自定义列表中开始序号int circulatemode=1; //循环模式int pp=0;int begintemp=0; //存储自定义列表边界int ww=-1; // 显示自定义列表当前播放信息int upordown=1; //判断切歌方向int firstup=0;int originvolume=500; //默认音量为500char v[40]="setaudio aa volume to 500"; //初始化音量void Init(){Order=1;NewOrder=0;Amount = 0;circulatemode=1;pp=0;begintemp=0;ww=-1;upordown=1;firstup=0;originvolume=500;}void ShowFileList(){if(begintemp==0)begintemp=begin;Amount = FM_CheckFile();begin = Amount;if(NewOrder==0){Show_GUI_EIGHT();FM_CheckFilePrint(0,Amount);}else{Show_GUI_EIGHT();FM_CheckFilePrint(Amount,begintemp);}};void ShowFileDetails(){int i=0;if(upordown==1){if(NewOrder!=0){Order=Amount+1+ww;ww++;}}if(upordown==2){if(firstup==0){if(NewOrder!=0){Order=Amount+1+ww;ww--;}firstup--;}else{if(NewOrder!=0){Order=Amount+1+ww;ww--;}}}firstup+=4;i=Order-1;printf(" 正在播放的音乐\n");printf("-------------------------------------------------------\n");printf(" 歌曲号歌曲名歌手名\n");printf("-------------------------------------------------------\n");printf(" %3d ",info[i].ID);printf(" %-20s ",info[i].song);printf(" %-10s\n",info[i].singer);printf("-------------------------------------------------------\n");}void Play(){if(NewOrder!=0)Order=Amount+1;char vol[10]="500";char v[40];char ch[200];sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);sprintf(v," setaudio aa volume to %s",vol);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa repeat",NULL,0,NULL);// getchar();}void Stop(){mciSendString ("pause aa",NULL,0,NULL);printf("歌曲播放已暂停,输入3继续播放,输入12退出\n\n");// getchar();}void Resume(){mciSendString ("resume aa",NULL,0,NULL);// getchar();}void FastForward(){int n=1;int m=0;int d=0;int minute;int second;char dd[60][20];char temp[20];do{printf("输入1快进:");scanf("%d",&n);mciSendString ("status aa position", dd[m], 20, 0); char ch[20];sprintf(ch,"%s",dd[m]);d=atoi(dd[m]);d+=5000;minute=(int)(((int)(d/1000))/60);second=(d/1000)-minute*60;itoa(d,dd[m],10);sprintf(temp,"seek aa to %s",dd[m]);mciSendString (temp,NULL,0,NULL);Play();m++;clrscr();ShowFileList();ShowFileDetails();Show_GUI_FOUR();printf("当前时间:%d:%02d \n",minute,second);}while(n==1);}void FastBack(){int n=1;int m=0;int d=0;int minute;int second;char dd[60][20];char temp[20];do{printf("输入1快退");scanf("%d",&n);mciSendString ("status aa position", dd[m], 20, 0); char ch[20];sprintf(ch,"%s",dd[m]);d=atoi(dd[m]);d-=5000;minute=(int)(((int)(d/1000))/60);second=(d/1000)-minute*60;itoa(d,dd[m],10);sprintf(temp,"seek aa to %s",dd[m]);mciSendString (temp,NULL,0,NULL);Play();m++;clrscr();ShowFileList();ShowFileDetails();Show_GUI_FOUR();printf("当前时间:%d:%02d \n",minute,second);}while(n==1);}void StopStop(){char temp[20];char ch[10];itoa(0,ch,10);sprintf(temp,"seek aa to %s",ch);mciSendString (temp,NULL,0,NULL);mciSendString ("pause aa",NULL,0,NULL);printf("点击1重新播放\n\n");}void VolumePlus(){int n=1;// int originvolume=500;char volume[10];char temp[40];while(n==1){printf("输入1增加音量,输入2退出音量增加模式 ");scanf("%d",&n);originvolume+=250;itoa(originvolume,volume,10);sprintf(temp," setaudio aa volume to %s",volume);mciSendString (temp,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);getchar();clrscr();ShowFileList();ShowFileDetails();Show_GUI_FOUR();printf("当前音量:%d\n",originvolume);}originvolume-=250;}void VolumeReduce(){int n=1;// int originvolume=500;char volume[10];char temp[40];while(n==1){printf("输入1降低音量,输入2退出音量降低模式 ");scanf("%d",&n);originvolume-=250;itoa(originvolume,volume,10);sprintf(temp,"setaudio aa volume to %s",volume);mciSendString (temp,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();clrscr();ShowFileList();ShowFileDetails();Show_GUI_FOUR();printf("当前音量:%d\n",originvolume);}originvolume+=250;}void PreSong(){if(NewOrder==0){if(circulatemode==1){if(Order<1){Order=1;char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}}if(circulatemode==2){if(Order<1){Order=Amount;char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}}}else{Order=Amount+pp;if(circulatemode==1){if(Order<Amount){Order=Amount;char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}}if(circulatemode==2){if(Order<Amount){Order=begin;char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}}pp--;}upordown=2;}void NextSong(){if(NewOrder==0){if(circulatemode==1){if(Order>Amount){Order=Amount;char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}}if(circulatemode==2){if(Order>Amount)//////////////////////////////////////////////{Order=1;char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order-1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}}}else{Order=Amount+pp;if(circulatemode==1){if(Order<Amount)/////////////////////有问题{Order=Amount;char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order+1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order+1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}}if(circulatemode==2){if(Order<Amount)//有问题{Order=begin;char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order+1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[Order+1].add);mciSendString(ch,NULL,0,NULL);mciSendString(v,NULL,0,NULL);mciSendString("play aa ",NULL,0,NULL);// getchar();}}pp++;}upordown=1;}void SelectCirculMode(){int i=0;Show_GUI_SEVEN();scanf("%d",&i);if(i==1)circulatemode=1;if(i==2)circulatemode=2;}void SaveExit(){/*char dd[20];char log[50]={"testlog!!!"};mciSendString ("status aa position", dd, 20, 0);int d;d=atoi(dd);FILE *fp = NULL;fp = fopen("D:\\SaveLog.txt","a");fwrite(log,1,50,fp);*/}void PlayOperation(){int d;re: clrscr();ShowFileList();ShowFileDetails();Show_GUI_FOUR();printf("请选择要进行的操作:");epo:scanf("%d",&d);fflush(stdin);if(ERR_CheckEntero(d)){switch(d){case 1:Play();goto re;case 2:Stop();goto re;case 3:Resume();goto re;case 6:FastForward();goto re;case 8:FastBack();goto re;case 4:StopStop();goto re;case 9:VolumePlus();goto re;case 10:VolumeReduce();goto re;case 5:Order--;PreSong();goto re;case 7:Order++;NextSong();goto re;case 12:ChooseSong();goto re;case 11:SelectCirculMode();goto re;case 13:mciSendString("close aa", NULL, 0, NULL);return;case 14:SaveExit();// getchar();}}else{goto epo;}};void NewOperation(){ee: int i=0;printf("请选择要进行的操作:");scanf("%d",&i);fflush(stdin);switch(i){case 1:FM_CheckFilePrint(0,Amount);begin = FM_Choose(Amount,begin);break;case 2:begin = FM_Path(begin);break;case 3:break;default:printf("输入有误\n");goto ee;}};void ShowNewList(){FM_List(begin,Amount);NewOrder=Amount+1;PlayOperation();}void ChooseSong(){int id = 0;printf("请输入歌曲号:");scanf("%d",&id);if(id<1||id>Amount){printf("选择歌曲不存在!\n");}else{char ch[200];mciSendString("close aa", NULL, 0, NULL);sprintf(ch,"open \"%s\" alias aa",info[id-1].add);mciSendString(ch,NULL,0,NULL);mciSendString("play aa repeat",NULL,0,NULL);}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用户在控制台输入不同数据后,应用程序根据不同的数据进行相应的输出,实现各种 Mp3 播放器的功能。
2.2 运行环境
Windows 操作系统。
2.3 基本设计概念和处理流程
系统总体功能流程为:运行程序进入页面,显示软件的版本信息,主要包括版本的版本号, 作者,日期,名称。然后输入任意键会进入主菜单,在这之前会提示是否选择歌曲列表,如果不 选择会自动加载默认的列表路径,默认路径为 d:\\mp3.txt。在主菜单里可以选择播放器的各种 控制功能,比如添加歌曲,显示列表,切换列表,查找歌曲,上一首,下一首,播放模式的选择 退出等选项功能。
进入播放列表后:
进入播放模式后: 进入播放选项后:
4.2 运行控制
开始进入界面: 输入 1 则输入新的路径下的播放列表,输入其他字符进入当前默认的播放列表
进入默认列表播放歌曲,根据提示的数字选择不同的选项,实现不同的功能。
输入 1 播放当前列表歌曲 输入 2 查找歌曲 输入 3 增加歌曲 输入 4 进入选择播放模式选项 输入 5 上一首 输入 6 下一首 输入 7 退出播放器
void stay_play(); void comeback_play(); void measure_volume(); void fast_backward(); void fast_upward(); 。
4 运行设计
//暂停播放 //恢复播放 //调节音量大小 //快进 //快退
4.1 运行模块组合
1.2 背景
说明: 1.软件名称:MP3 播放器。 2.开发小组成员:胥站峰 3.软件平台:windows 操作系统。
1.3 定义
MP3(MPEGAudioLayer-3)是一种数字音频压缩技术,数字压缩速率达到每通道 128kbps,数比 例可以达到 12:1。MP3 播放器的主要作用就是解压压缩的 MP3 数字音频,再现 MP3 音乐,同时为携 带方便还要能存贮 MP3 文件,MP3 歌曲可以从电脑上下载。MP3 播放器主要由 MP3 文件解码部分、 文 件 存 贮 部 分 、文 件 下 载 接 口 和 语 音 播 放 部 分 构 成 。根 据 解 码 的 方 法 播 放 器 可 分 为 软 解 码 和 硬 解 码两种: 软解码是利用控制软件解压缩 MP3 文件,它要求控制器处理速度要快。。
选择播放模式时: 输入 1 单曲播放 输入 2 单曲循环播放 输入 3 顺序列表播放 输入 4 列表循环播放 输入 5 随机播放 输入 6 返回上一层
播放时,按照提示,进入播放选项, 输入 0 停止播放
输入 1 暂停 输入 2 快退 输入 3 快进 输入 4 上一首 输入 5 下一首 输入 6 调节音量 输入 7 恢复播放 输入 8 查看文件长度大小 输入 9 返回上层
//输入新的信息
void show();
//显示列表信息
int str(struct media * head);//求链表长度
void load();
//从文件中加载信息
void lookup();
//查找歌曲信息
void lookup_show();
//查找歌曲并显示
void single_play(); void order_list_play(); void cyc_single_play(); void csc_list_play(); void random_play();
1. 视觉外观:进入播放器时,界面简洁大方,让人一目了然。具有简单易用的特性。 2. 系统使用播放器时能显示播放器的状态,当前播放的歌曲名称和路径。
2.2 界面需求:
播放器界面要求布局合理,颜色舒适。
2.3 性能需求
(1) 当要求歌曲播放时,软件响应时间最长不超过 1 秒 (2) 当要求歌曲暂停时,软件响应时间最长不超过 1 秒 (3) 播放歌曲,采用立体声播放,文件流畅
3.1 用户接口
当前默认列表 输入路径的列表 显示当前列表歌曲 添加新歌曲 选择播放模式 调节音量大小 进入播放选项 返回上层 顺序播放 随机播放 循环播放 单曲循环 单曲播放 查找歌曲 上一首 下一首 停止播放 暂停播放 继续播放
显示播放信息 快进 快退 查看文件长度 切换播放列表
3.2 外部接口
需求分析
1 引言
随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成 了我们生活工作中的一个重要的部分。而计算机的普及,让人们能让我们通过播放软件,能更好的听到 我们喜欢的音乐。本文档就是为了能更好的设计出一个音乐播放去而编写的。
1.1 编写目的:
为明确软件需求、安排项目与进度、组织软件开发与测试,撰写本文档。本文档功项目经理、设计 人员、开发人员参考。
2.4 可靠性要求
系统能持续运行,不影响其他程序的使用,不多占用内存,不会造成死机等问题。
2.5 运行环境需求
操作系统:WindowsXP/windows7
1 引言
1.1 编写目的
本系统设计说明书用于描述 mp3 播放器项目的整体系统设计方案,本说明书是系统详细设计 的依据,也作为系统测试需求和系统测试计划和测试程序的重要参考。
如果输入错误,会自动重新输入。 。
4.3 运行时间
每个模块的运行时间<0.1s。
5 系统数据结构设计
5.1 逻辑结构设计要点
struct media
{
char path[N];
//歌曲的路径
char name[M];
//歌曲的名字
struct media *next;
};
struct media *head=NULL言程序设计——清华大学出版社 c 数据结构——清华大学出版社。
2.系统需求分析
根据项目,我们可以获得项目系统的基本需求,一下从不同角度来描述系统的需求。
2.1 功能需求
系统的功能需求,我们分成三部分来概括,即播放器的基本控制需求,播放列表管理需求和播放器友好 性需求。以下分别描述:
struct media *p1,*p2,*po=NULL;//p1,p2 为指向链表末尾的指针,po 指向当前
所用的节点的指针
FILE *fp;
char filepath[N]="d:\\mp3.txt";//文件的初始路径
char judge;
//判断是否还要添加歌曲
int count=0; //列表歌曲总数,也就是链表长度
2 模块功能描述.................................................................................................................................................. 14 2.1 数据结构定义...................................................................................................................................... 15 2.1.1 全局变量定义.......................................................................................................................... 15 2.1.2 常量定义.................................................................................................................................. 15 2.2 类模块功能实现.................................................................................................................................. 15 2.2.1 类数据成员.............................................................................................................................. 15 2.2.2 类成员函数.............................................................................................................................. 16
6 系统出错处理设计 6.1 出错信息 提示输入错误,重新输入,会自动返回。
项目名称:NeusoftMediaPlayer 项目编号: NEUWHU20080001 文档编号:D09-PMT08013
MediaPlayer详细设计
总页数 编制
正文
附录
批准
生效日期
目录
1 文档概述.......................................................................................................................................................... 14 1.1 文档目的和范围.................................................................................................................................. 14 1.2 项目背景.................................................................................................................错误!未定义书签。 1.3 参考文档.............................................................................................................................................. 14
相关文档
最新文档