北京大学论坛

 找回密码
 注册(开放注册)
搜索
查看: 4719|回复: 9
打印 上一主题 下一主题

[软件] 如何用C开发播放器制作音频文件

[复制链接]
跳转到指定楼层
1#
发表于 2006-6-19 16:13:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
个人声明 1
    我将对本人做如下修改,但是日期不能确定,所以更新的速度会很慢。
    另外我下个星期后,寝室将断网,我会在家写好一切,在公司通过邮件发给大家。
   希望有人能配合我,并把我发给他的东西上传这里(个人邮箱guvc@163.com),供大家学习。
   (本文适合哪些读者,补加)
   (软件设计式样书,补加)
        (软件实现哪些功能,补加)
        (如何实现这些功能,补加)
        (基本框架组建----能够实现正常播放功能框架搭建,补加)
        (辅助功能添加----同时对前期程序错误和不接合处进行修改,补加)
        (如何实现并控制以及回收子线程----同时对前期程序错误和不接合处进行修改,补加)
        (内存泄露以及程序调试的工作,补加)
    (软件包装补加)
如果能自己作一个音频文件的播放器,那是什么感觉?,我感觉很爽。
最近看看帮助文档,自己设计了款音频播放器。基本上什么格式多能放。现在正在给她升级,让他真正的能什么格式多能放。
    我现在把这个最初的版本共享给大家。
    软件设计:首先我们要想到以后对软件的设计所以有些必要的工作我们必须把它提出来单独作。
    播放功能。我把它做为一个单独类
    提示信息。我把它们定义在一个共同头文件内
下面作详细介绍
    首先软件平台选择vc6.0基于MFC,选择对话框模式。其他不用便,唯一需要改的一步就是在库的选择方面我们用静态不用动态,否则软件脱离自己的机器后很可能不能正常运行。
    现在一个大体的框架设计好了
下面就是添加一个类(一个普通类),把类命名为CPlayDevice.
然后就是给CPlayDevice添加成员变量和函数如下
private:
DWORD  m_dwPlayID;
.........
成员变量尽量定义为私有。
public:
void OpenFile(CString strText);
void Play();
void Play(int index);
..........
附注:这里怎么不能添加附件啊,代码很多的哎,我得敲到什么时候啊。。。。
这个类写完后,会出现很多问题
播放模式:
播放,暂停,停止
是否支持多曲连放,还是单曲播放,在本程序中我们支持多曲连放。
还有就是设备初始化的问题。
我们把这些问题放在共同类
建立个头文件ComData.h
#pragma once
#include "windows.h"

#define TITLE_MAIN   "音频播放器"
#define TITLE_ERROR "错误"
//这样做的好处是,当我们在升级的时候没必要到文件内部去逐个修改。
//我们只需在这里修改就可以
.......

#define MSG_NOFILE "设备中没有音频文件"
#define MSG_。。。。。
。。。
详见原代码
共同和类写完后
我们开始设计框架
我在设计的时候使用的全是图形界面。
所以在这里我稍微详细写点
至于图片大家自己作,或则上网找
首先把对话框的格式修改,去掉周边框架,只留住客户区
添加按钮,修改属性,选中owner,和位图 这样就可以自己绘制按钮
给按钮添加 “控件” 变量,(便于后期编程)
然后将 所有 CButton 改为 CBitmapButton
现在我们要考虑程序在启动后,他如何绘制界面
有以下几种情况,单击事件,装在歌曲文件的时候
我们在单击每个按钮的时候最好从绘摁钮,然后就是重写窗体的onpaint 事件,具体代码见源程序
现在开始组合
    在窗体初始化代码里 我们要初始化音频设备。我把这个操作放在了播放摁钮里面。现在想起来这样不好。建议大家放在窗体初始化中
    如何重硬盘中选者音乐,我们先定一个CFileDialog 类型的变量,通过这个变量来从系统中选者音频文件
    最后给程序做个时间事件(现在想起来没有这个必要,因为时间事件的效率太率,而且很好内存,个人建议是利用子线程,不过这样我们得控制好播放速度,否则播出来的效果不是很流畅)。主要是监视歌曲播放状态,是否播放完毕等
上面写的我个人觉得太笼统。代码实在是比较多,不愿意敲出来。见谅

改动后补注:我今天只有半个小时时间,我只笼统地看了下,说句实在话,看了这篇文章,大家实在是学不到东西,连基本的概念多没讲清楚,我会慢慢的对其进行修改,希望大家见谅(个人感觉这篇文章,应该有足够的资格加精吧,嘿嘿)

[ 本帖最后由 重新来过 于 2007-3-31 22:47 编辑 ]
2#
发表于 2006-6-24 22:15:59 | 只看该作者
windows 多媒体编程更方便了
3#
 楼主| 发表于 2007-1-10 23:12:48 | 只看该作者

抱歉

靠 这帖子写的有点垃圾(真不好找)
没写明白什么
我不知道某些兄弟是不是看到这篇文章才给我发邮件索要代码
可惜 原先的代码已经不存在,写这篇代码的时候我还在学校,
我现在电脑里面的源码是经过我自己再次升级的
已经将大部分功能封装在dll文件中,所以给你们发这些代码没什么用途
等我有时间给整理出来 再在这里发帖
有要得同志 跟帖就行 无需再向我的邮箱中发邮件
4#
发表于 2007-1-11 00:24:23 | 只看该作者
以前用vb写过一个 皮肤是可以更换的  按钮用的flash按钮
c语言不懂
5#
发表于 2007-1-11 09:29:02 | 只看该作者
顶一下啊,有原代码的话帮忙发给我!
谢谢,我的邮箱:wangmengtian1986@163.com
6#
发表于 2007-3-19 14:55:38 | 只看该作者
我也想学习一下,我的邮箱是lukelark@sina.com
我想要原代码和相关技术文档,谢谢!!!
7#
发表于 2007-4-30 02:18:53 | 只看该作者
本人毕业设计需要用VC开发一个汽车覆盖件自动排样方面的系统
正在努力学VC
真不知最后能做到什么程度
以后可能要找楼主请教
8#
发表于 2007-4-30 02:19:26 | 只看该作者
现在光算法就搞的我头疼
9#
 楼主| 发表于 2007-5-24 18:01:51 | 只看该作者
呵呵 我的建议就不多说了。
至于如何学习c语言,我在论坛发过帖子。
至于想在毕业设计期间把c语言学好,我感觉是不太可能。
如果是纯粹搞毕业设计的话,还是可以的。
最后的建议就是别把算法当语言来学习
您需要登录后才可以回帖 登录 | 注册(开放注册)

本版积分规则

手机访问本页请
扫描左边二维码
         本网站声明
本网站所有内容为网友上传,若存在版权问题或是相关责任请联系站长!
站长联系QQ:7123767   myubbs.com
         站长微信:7123767
请扫描右边二维码
www.myubbs.com

小黑屋|Archiver|北京大学论坛 ( 琼ICP备10001196号-2 )

GMT+8, 2024-4-19 16:42 , Processed in 0.105582 second(s), 14 queries .

Powered by 高考信息网 X3.3

© 2001-2013 大学排名

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