cmp3v(CMP3V化學成分)

博主:adminadmin 2024-01-26 22:06:01 條評論
摘要:本篇文章給大家談談cmp3v,以及CMP3V化學成分對應的知識點,希望對各位有所幫助。CMP3是什么格式,怎么制作CMP3格式是一種基于前端mpg123的控制...
usteel.net

本篇文章給大家談談cmp3v,以及CMP3V化學成分對應的知識點,希望對各位有所幫助。

cmp3v(CMP3V化學成分)

CMP3是什么格式,怎么制作

CMP3格式是一種基于前端mpg123的控制臺(媒體),它使用ncurses庫. 有一個非常漂亮的界面、非常酷的懸掛模式和便于播放的列表,全力支持播放,包括將歌曲的前后切換、隨機播放、保存和裝載等。

怎樣把MP3轉CD WAV 格式時音質保存得最好

用千千靜聽可以轉換成音頻格式,詳細步驟如下;

☆步驟一:右鍵點擊播放列表里的歌曲名稱

☆步驟二:點擊"轉換格式(C)

☆步驟三:在"輸出格式"下拉框中選擇你需要的格式.

目前千千支持5種格式轉換:

1.wav:wave文件輸出

2.m4a:Nero

HE-AAC

編碼器,需要Nero

6組件

3.ape:Monkey's

Audio(APE)編碼器

v1.02

4.mp3:.mp3

編碼器(lame

v3.90.3)v1.02,或者命令行編碼器v1.0(需要命令行編碼器lame.exe)

5.wma:WMA編碼器(Window

Media

Audio)v1.02(需要安裝Windows

Media

Player/Encoder

9.0或者更高版本);

點擊“配置

怎么用c語言打開一個MP3文件(直接給代碼),需要什么軟件進行輸入

VC++中播放聲音的方法

2009-09-23 14:58

聲音是多媒體的一個重要組成部分,在應用程序中加入聲音可以使界面更友好。在VC++中可以根據不同的應用要求,用不同的方法實現聲音的播放。

一.播放聲音文件的簡單方法

在VC++ 中的多媒體動態連接庫中提供了一組與音頻設備有關的函數。利用這些函數可以方便地播放聲音。最簡單的播放聲音方法就是直接調用VC++中提供的聲音播放函數BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中參數lpszSound是需要播放聲音的.WAV文件的路徑和文件名, hmod在這里為NULL,fuSound是播放聲音的標志,詳細說明請參考VC++中的幫助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:soundmusic.wav",SND_ASYNC);或PlaySound("c:soundmusic.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果沒有找到music.wav文件,第一種格式將播放系統默認的聲音,第二種格式不會播放系統默認的聲音。

二.將聲音文件加入到程序中

在VC++的程序設計中,可以利用各種標準的資源,如位圖,菜單,對話框等。同時VC++也允許用戶自定義資源,因此我們可以將聲音文件作為用戶自定義資源加入程序資源文件中,經過編譯連接生成EXE文件,實現無.WAV文件的聲音播放。

要實現作為資源的聲音文件的播放,首先要在資源管理器中加入待播放的聲音文件(實現過程并不復雜,這里不在敘述)。假設生成的聲音文件資源標識符為IDR_WAVE1。在播放時只需要調用下面的語句:

PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(), SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP);

其中MAKEINTRESOURCE()宏將整數資源標識符轉變為字符串,AfxGetResourceHandle()函數返回包含資源的模塊句柄,

SND_RESOURCE是必須的標志。

作為資源的聲音文件的第二種播放方法是把資源讀入內存后作為內存數據播放。具體步驟入下:

1.獲得包含資源的模塊句柄:

HMODULE hmod=AfxGetResourceHandle();

2.檢索資源塊信息:

HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_WAVE1),_T("WAVE"));

3. 裝載資源數據并加鎖:

HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);

LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);

4.播放聲音文件:

sndPlaySound(lpMemSound,SND_MEMORY));

5.釋放資源句柄:

FreeResource(hGlobalMem);

三.播放聲音文件的高級方法

在VC++中提供了一組對音頻設備及多媒體文件直接進行操作的函數。利用這些函數可以靈活地對聲音文件進行各種處理。

首先介紹幾個要用到的數據結構。WAVEFORMATEX結構定義了WAVE音頻數據文件的格式。WAVEHDR結構定義了波形音頻緩沖區。讀出的數據首先要填充此緩沖區才能送音頻設備播放。WAVEOUTCAPS結構描述了音頻設備的性能。MMCKINFO結構包含了RIFF文件中一個塊的信息。詳細的說明請參考VC++中的幫助。

下面給出程序流程簡圖及程序源代碼清單,在VC++環境下可直接使用:

源程序清單如下:

LPSTR szFileName;//聲音文件名

MMCKINFO mmckinfoParent;

MMCKINFO mmckinfoSubChunk;

DWORD dwFmtSize;

HMMIO m_hmmio;//音頻文件句柄

DWORD m_WaveLong;

HPSTR lpData;//音頻數據

HANDLE m_hData;

HANDLE m_hFormat;

WAVEFORMATEX * lpFormat;

DWORD m_dwDataOffset;

DWORD m_dwDataSize;

WAVEHDR pWaveOutHdr;

WAVEOUTCAPS pwoc;

HWAVEOUT hWaveOut;

//打開波形文件

if(!(m_hmmio=mmioOpen(szFileName,NULL,MMIO_READ|MMIO_ALLOCBUF)))

{

//File open Error

Error("Failed to open the file.");//錯誤處理函數

return false;

}

//檢查打開文件是否是聲音文件

mmckinfoParent.fccType =mmioFOURCC('W','A','V','E');

if(mmioDescend(m_hmmio,(LPMMCKINFO)mmckinfoParent,NULL,MMIO_FINDRIFF))

{

//NOT WAVE FILE AND QUIT

}

//尋找 'fmt' 塊

mmckinfoSubChunk.ckid =mmioFOURCC('f','m','t',' ');

if(mmioDescend(m_hmmio,mmckinfoSubChunk,mmckinfoParent,MMIO_FINDCHUNK))

{

//Can't find 'fmt' chunk

}

//獲得 'fmt '塊的大小,申請內存

dwFmtSize=mmckinfoSubChunk.cksize ;

m_hFormat=LocalAlloc(LMEM_MOVEABLE,LOWORD(dwFmtSize));

if(!m_hFormat)

{

//failed alloc memory

}

lpFormat=(WAVEFORMATEX*)LocalLock(m_hFormat);

if(!lpFormat)

{

//failed to lock the memory

}

if((unsigned long)mmioRead(m_hmmio,(HPSTR)lpFormat,dwFmtSize)!=dwFmtSize)

{

//failed to read format chunk

}

//離開 fmt 塊

mmioAscend(m_hmmio,mmckinfoSubChunk,0);

//尋找 'data' 塊

mmckinfoSubChunk.ckid=mmioFOURCC('d','a','t','a');

if(mmioDescend(m_hmmio,mmckinfoSubChunk,mmckinfoParent,MMIO_FINDCHUNK))

{

//Can't find 'data' chunk

}

//獲得 'data'塊的大小

m_dwDataSize=mmckinfoSubChunk.cksize ;

m_dwDataOffset =mmckinfoSubChunk.dwDataOffset ;

if(m_dwDataSize==0L)

{

//no data in the 'data' chunk

}

//為音頻數據分配內存

lpData=new char[m_dwDataSize];

if(!lpData)

{

//faile

}

if(mmioSeek(m_hmmio,SoundOffset,SEEK_SET)0)

{

//Failed to read the data chunk

}

m_WaveLong=mmioRead(m_hmmio,lpData,SoundLong);

if(m_WaveLong0)

{

//Failed to read the data chunk

}

//檢查音頻設備,返回音頻輸出設備的性能

if(waveOutGetDeVCaps(WAVE_MAPPER,pwoc,sizeof(WAVEOUTCAPS))!=0)

{

//Unable to allocate or lock memory

}

//檢查音頻輸出設備是否能播放指定的音頻文件

if(waveOutOpen(hWaveOut,DevsNum,lpFormat,NULL,NULL,CALLBACK_NULL)!=0)

{

//Failed to OPEN the wave out devices

}

//準備待播放的數據

pWaveOutHdr.lpData =(HPSTR)lpData;

pWave

OutHdr.dwBufferLength =m_WaveLong;

pWaveOutHdr.dwFlags =0;

if(waveOutPrepareHeader(hWaveOut,pWaveOutHdr,sizeof(WAVEHDR))!=0)

{

//Failed to prepare the wave data buffer

}

//播放音頻數據文件

if(waveOutWrite(hWaveOut,pWaveOutHdr,sizeof(WAVEHDR))!=0)

{

//Failed to write the wave data buffer

}

//關閉音頻輸出設備,釋放內存

waveOutReset(hWaveOut);

waveOutClose(hWaveOut);

LocalUnlock(m_hFormat);

LocalFree(m_hFormat);

delete [] lpData;

說明:1)以上使用的音頻設備和聲音文件操作函數的聲明包含在mmsystem.h頭文件中,因此在程序中必須用#include "mmsystem.h"語句加入頭文件。同時在編譯時要加入動態連接導入庫winmm.lib,具體實現方法是從Developer Studio的Project菜單中選擇Settings,然后在Link選項卡上的Object/Library Modules控制中加入winmm.lib。2)在pWaveOutHdr.lpData中指定不同的數據,可以播放音頻數據文件中任意指定位置的聲音。3) 以上程序均在VC++6.0中調試通過,在文中省略了對錯誤及異常情況的處理,在實際應用中必須加入。

四.結論

在VC++中可以根據應用需要采用不同的方法播放聲音文件。簡單應用可以直接調用聲音播放函數。第二種方法可以把聲音作為資源加入可執行文件中。如果在播放之前要對聲音數據進行處理,可用第三種方法。

參考書目:

1. 美 Paul Perry 陳向群 等譯《多媒體開發指南》 清華大學出版社

2. 美 Peter Norton, Rob McGregor 孫鳳英 等譯《MFC開發Windows95/NT4應用程序》 清華大學出版社 1998

3. 周敬利 《多媒體聲卡技術及應用》 電子工業出版社 1998

C語言如何播放mp3格式音樂

windows現有的API似乎只支持播放.wav格式的音頻,mp3格式恐怕你得再去網上找找開源代碼

//????播放音頻?"1.wav"

#include?stdio.h

#include?windows.h

#pragma?comment(lib,"winmm.lib")

int?main()

{

????PlaySound?("1.wav",NULL,SND_FILENAME?|?SND_ASYNC?|?SND_LOOP);????

????getchar();

????return?0;

}

昂達VX898C MP3 能用5.2V0.25V 500mA50mA的充電器充電么

你的機器是不是剛剛買沒有多久啊?昂達最新出的VX898C如果充電器沒有配對的話,是會出現這樣的提示的,這一批機器要配5.2V450MA的充電器才行。

cmp3v的介紹就聊到這里吧,感謝你花時間閱讀本站內容。

usteel.net