[Programming] Lý thuyết về chương trình mp3 Player |
26/08/2006 03:21:59 (+0700) | #1 | 18046 |
|
Vickizw
Member
|
0 |
|
|
Joined: 06/07/2006 19:55:29
Messages: 339
Location: ColTech
Offline
|
|
1 . Mp3 là gì
MP3 là một dạng file đã được nén bằng cách nén dữ liệu mất đi (lossy). Nó là một dạng âm thanh PCM pulse-code modulation-encoded nhỏ hơn rất nhiều so với dữ liệu ban đầu do nó bỏ đi những phần âm thanh được cho là không quan trọng trong khoảng nghe được của con người, tương tự như cách nén JPEG dành cho hình ảnh.
Tên của dạng này bắt nguồn từ "MPEG-1, lớp âm 3", còn được gọi chính thức hơn là ISO/IEC 11172-3 lớp 3. Những tập tin theo dạng này được lưu với phần mở rộng tên .mp3. Đôi khi những tập tin theo tiêu chuẩn MPEG-2, lớp âm 3 cũng sử dụng phần mở rộng này. Phần mở rộn .mp3 do Hội Fraunhofer.
Có rất nhiều kỹ thuật đã được dùng trong chuẩn nén MP3 để xác định phần nào nên bỏ đi, trong đó có tâm thần âm học psychoacoustic. Dữ liệu MP3 có thể được tạo ra với nhiều bitrate khác nhau để có thể dễ dàng chọn lựa giữa chất lượng cao hay cỡ tập tin đầu ra nhỏ.
Cốt lõi của kỹ thuật nén MP3 là một dạng biến đổi phức để chuyến tín hiệu sóng ngang theo thời gian thành tín hiệu dựa theo tần số:
* 32 băng tần phép lọc cầu phương đa âm.
* 36 hay 12 nhánh MDCT; kích cỡ có thể được định cho từng băng tần con từ 0 đến 1, từ 2 đến 31.
* đặt kí hiệu aliasing để làm giảm cỡ tập tin sau nén.
MP3 vòm, một dạng MP3 hỗ trợ 5+1 kênh cho âm thanh vòm, được giới thiệu vào tháng 12 năm 2004. MP3 vòm có tính tương thích ngược với chuẩn MP3 trước đây, và kích cỡ file sau nén cũng tương tự.
Theo dự án mới của MPEG thì AAC (Advanced audio coding), một phần của chuẩn MPEG-4 sẽ là chuẩn kế thừ MP3. Đã có rất nhiều kỹ thuật nén khác được tạo ra nhưng sản phẩm kế thừa nào cũng khó lòng thay thế được MP3 vì nó đã trở nên quá phổ biến cả của người dùng và những nhà sản xuất các đầu đọc CD, DVD
(Theo wikipedia)
2 . MCI là gì
Đã bao giờ bạn tự hỏi , Windows làm thế nào để tạo ra những âm thanh khi bạn bắt đầu khởi động , hoặc những âm thanh khi bạn đóng mở những cửa sổ ….
bằng cách nào chưa ? Sẽ có một số người trả lời rằng ,nó dùng Windown Media Player có sẵn theo Windowns .Họ đã hoàn toàn nhầm !!!!!!!! Khi bạn gỡ Windown Media Player khỏi máy thì vẫn có nhưng âm thanh đó !!!!!!Câu trả lời nằm ở trên : Đó là nó dùng MCI .
MCI là một thành phần của hệ điều hành Windows (Windowns Operating System) . Nó thuộc vào nhóm API ( Advanced Programming Introduction) của Hệ Điều Hành .MCI xuất hiện khoảng 1 thập kỉ trước và được giới thiệu với Windows 3.x khi Microsoft làm việc với một số công ty để phát triển một phương pháp bổ sung Multimedia trên PC. MCI tự nó được xây dựng trong một modular fashion để những modules hay thành phần mới và được mở rộng có thể được thêm vào. Đây chính xác là cách mà nhiều chương trình đọc nhạc sủ dụng để dọc các định dạng nhạc. Hoặc thậm chí một số ứng dụng khác như PowerPoint cũng sử dụng MCI để chơi các định dạng âm thanh.
Thuận lợi lớn nhất là người bán phần mềm có thể chỉ cần yêu cầu MCI để làm các chức năng của Multimedia mà không phải viết một mã chương trình mới để thực hiện công việc đó. MCI có thể chơi được các file tiếng kiểu MP3,MP2 ,WAV,WMA,…..và các file hình kiểu MPEG ,WMV ,AVI….đó là một nguồn quý báu để có thể xây dựng nên các Player chơi các file nhạc kiểu như trên.
Như vậy, khi muốn chơi một định dạng MP3 hay Wav thì chúng ta chỉ cần “gọi” MCI ra để cho chúng chơi các định dạng này.
Chương trình chơi nhạc MP3 và WAV của chúng ta cũng dùng module này
3 .Giải thuật
Như đã nói ở trên thì việc đầu tiên của làm một trình ứng dụng là làm một cửa sổ việc này được thao tác trên Microsolft Visual C++ 6.0.
Phần này bọn em xin trình bày đoạn code xây dựng biến trong chương trình .Trong Microsoft Visual C++ 6.0 khi áp dụng tiện ích ClassWizard thì biến sẽ tự điền vào file tiêu
Code:
enum { IDD = IDD_MP3PLAYER_DIALOG };
CStatic m_Status;
CButton m_Play;
CString m_Path;
Đồng thời ta cũng cần khai báo hai biến cần dùng trong file này ,đó là các biến dùng cho các hàm của MCI và để thực hiện thao tác lật nút.
Code:
private:
HWND m_Audio;
BOOL Pause;
Dưới đây là một phần đoạn code
Code:
//Khai báo thư viện chứa các hàm của MCI :
#include "vfw.h"
// Thao tac tren giao dien cua chuong trinh.Viec xay dung giao dien cua chuong trinh
//duoc thuc hien mot cach truc quan tren file *.rc .Khi dung MFC ,tren file *Dlg.cpp
//se tu dong xay dung nhung ham duoi day de ve ve giao dien tren man hinh.
BOOL CMp3PlayerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Tao bieu tuong trong hop thoai. Khung chuong trinh se tu dong lam viec nay
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
return TRUE; // return TRUE unless you set the focus to a control
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CMp3PlayerDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // ung dung do hoa
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// bieu tuong trung tam cua hinh chu nhat
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Ve bieu tuong
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// he thong se goi lenh nay de tao chuot khi nguoi dung keo chuot di
// thu nho cua so
HCURSOR CMp3PlayerDlg::OnQueryDragIcon()
{
--------------------------------------
Source : Fotech.org |
|
|
|
|
[Question] Lý thuyết về chương trình mp3 Player |
29/08/2006 11:06:14 (+0700) | #2 | 18894 |
mikamehi
Member
|
0 |
|
|
Joined: 19/07/2006 10:09:06
Messages: 43
Offline
|
|
Cứ tưởng bác sẽ phân tích thuật toán coding mp3 và decoding mp3 chứ, đọc tới dấu ngoặc đơn mới biết bác trích tứ Wikipedia là thấy thất vọng rồi. |
|
|
[Question] Lý thuyết về chương trình mp3 Player |
29/08/2006 11:15:36 (+0700) | #3 | 18896 |
|
Vickizw
Member
|
0 |
|
|
Joined: 06/07/2006 19:55:29
Messages: 339
Location: ColTech
Offline
|
|
Trích từ wiki chỉ cái định nghiz mp3 thôi mà
Coi lại kĩ bài viết đi chứ |
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|