當前位置:首頁 » 操作系統 » c音樂播放器源碼

c音樂播放器源碼

發布時間: 2022-07-11 05:01:29

Ⅰ 用單片機c語言實現音樂播放器功能

先鍵盤掃描,找到鍵
然後根據按鍵在代碼里找到對應的頻率
然後把頻率輸出,就可以發聲了。

Ⅱ 尋音樂播放器源代碼,用高級語言編寫即可,java/c/c++/vc都可以

給你個Java音樂播放器代碼,你試試!

import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import javax.media.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MediaPlayer extends JFrame implements ActionListener,
ItemListener, ControllerListener {
String title;
Player player;
boolean first = true, loop = false;
Component vc, cc;
String currentDirectory=null;
// 構造函數,其中包括了設置響應窗口事件的監聽器。
MediaPlayer(String title) {
super(title);
/* 關閉按鈕的實現。。 */
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
public void windowClosed(WindowEvent e) {
if (player != null)
player.close();
System.exit(0);
}
});
// 調用程序菜單欄的方法成員完成菜單的布置
setupMenu();
setSize(400, 400);
setVisible(true);
}
// 本方法用以設置程序菜單欄
public void setupMenu() {
// 設置一個菜單
Menu f = new Menu("文件");
// 往設置的菜單添加菜單項
MenuItem mi = new MenuItem("打開");
f.add(mi);
mi.addActionListener(this);
f.addSeparator();
CheckboxMenuItem cbmi = new CheckboxMenuItem("循環", false);
cbmi.addActionListener(this);
f.add(cbmi);
f.addSeparator();
MenuItem ee = new MenuItem("退出");
ee.addActionListener(this);
f.add(ee);
f.addSeparator();
Menu l = new Menu("播放列表");
Menu c = new Menu("播放控制");
MenuItem move = new MenuItem("播放");
move.addActionListener(this);
c.add(move);
c.addSeparator();
MenuItem pause = new MenuItem("暫停");
pause.addActionListener(this);
c.add(pause);
c.addSeparator();
MenuItem stop = new MenuItem("停止");
stop.addActionListener(this);
c.add(stop);
c.addSeparator();
// 設置一個菜單欄
MenuBar mb = new MenuBar();
mb.add(f);
mb.add?;
mb.add(l);
// 將構造完成的菜單欄交給當前程序的窗口;
setMenuBar(mb);
}
// 動作時間響應成員;捕捉發送到本對象的各種事件;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String cufile, selectfile, currentDirectory;
if (e.getActionCommand().equals("退出")) {
// 調用dispose以便執行windowClosed
dispose();
return;
}
// 此事表明擁護選擇了「播放」命令;
// 如果當前有一個文件可以播放則執行播放命令;
if (e.getActionCommand().equals("播放")) {
if (player != null) {
player.start();
}
return;
}
// 如果當前正在播放某一文件,則執行暫停;
if (e.getActionCommand().equals("暫停")) {
if (player != null) {
player.stop();
}
return;
}
// 停止命令的響應;
if (e.getActionCommand().equals("停止")) {
if (player != null) {
player.stop();
player.setMediaTime(new Time(0));
}
return;
}
// 用戶選擇要播放的媒體文件
if (e.getActionCommand().equals("打開")) {
FileDialog fd = new FileDialog(this, "打開媒體文件", FileDialog.LOAD);
// fd.setDirectory(currentDirectory);
2008-2-6 02:46 回復
肆方茉莉
62位粉絲
6樓
fd.setVisible(true);
// 如果用戶放棄選擇文件,則返回
if (fd.getFile() == null) {
return;
}
// 保存了所選文件的名稱及其路徑名稱已被稍後使用
// 同時設置當前文件夾路徑
selectfile = fd.getFile();
currentDirectory = fd.getDirectory();
cufile = currentDirectory + selectfile;
// 將用戶選擇的文件作為一個菜單項加入播放列表,該菜單項名為該文件名;
// 被點擊後給出的命令串是該文件的全路徑名
MenuItem mi = new MenuItem(selectfile);
mi.setActionCommand(cufile);
MenuBar mb = getMenuBar();
Menu m = mb.getMenu(2);
mi.addActionListener(this);
m.add(mi);
} else {
// 程序邏輯運行到次表示用戶選擇了一個「播放列表」中的媒體文件
// 此時可以通過如下動作獲得該文件的全路徑名
cufile = e.getActionCommand();
selectfile = cufile;
}
// 如果存在一個播放器,則先將其關閉,稍後再重新創建
// 創建播放器時需要捕捉一些異常
if (player != null) {
player.close();
}
try {
player = Manager.createPlayer(new MediaLocator("file:" + cufile));
} catch (Exception e2) {
System.out.println(e2);
return;
}/*
* catch(NoPlayerException e2){ System.out.println("不能找到播放器");
* return ; }
*/
if (player == null) {
System.out.println("無法創建播放器");
return;
}
first = false;
setTitle(selectfile);
// 設置處理播放控制器實際的對象;
/**/
player.addControllerListener(this);
player.prefetch();
}
// 菜單狀態改變事件的響應函數;
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MediaPlayer("播放器");
}
// 調用繪圖函數進行界面的繪制
// public void update() {
// }
// 繪圖函數成員
//public void paint(Graphics g) {
// }
public void controllerUpdate(ControllerEvent e) {
// TODO Auto-generated method stub
Container tainer = getContentPane();
// 調用player.close()時ControllerClosedEvent事件出現
// 如果存在視覺部件,則該部件應該拆除(為了一致起見,我們對控制面版部件也執行同樣的操作,下一次需要時再構造)
if (e instanceof ControllerClosedEvent) {
if (vc != null) {
remove(vc);
vc = null;
}
if (cc != null) {
remove(cc);
cc = null;
}
}
// 播放結束時,將播放指針置於文件之首,如果設定了循環播放,則再次啟動播放器;
if (e instanceof EndOfMediaEvent) {
player.setMediaTime(new Time(0));
if (loop) {
player.start();
}
return;
}
// PrefetchCompletEvent事件發生後調用start,正式啟動播放
if (e instanceof PrefetchCompleteEvent) {
player.start();
return;
}
// 本事件表示由於播放的資源已經確定;此時要將媒體的圖形conmopnent
// 如果有顯示出來,同時將播放器player的控制顯示到窗口裡;
if (e instanceof RealizeCompleteEvent) {
// 如果媒體中有圖像,將對應圖像component載入窗體;
vc = player.getVisualComponent();
if (vc != null)
tainer.add(vc, BorderLayout.CENTER);
// 將對應控制器component載入窗體;
cc = player.getControlPanelComponent();
cc.setBackground(Color.blue);
if (cc != null)
tainer.add(cc, BorderLayout.SOUTH);
// 有一些特殊媒體在播放時提供另外的控制手段,將控制器一並加入窗口;
/*
* gc=player.getGainControl(); gcc=gc.getControlComponent();
* if(gcc!=null) tainer.add(gcc,BorderLayout.NORTH);
*/
// 根據媒體文件中是否有圖像,設定相應的窗口大小
if (vc != null) {
pack();
return;
} else {
setSize(300, 75);
setVisible(true);
return;
}
}
}
}

希望對你有幫助!

Ⅲ 求音樂播放器源代碼,用高級語言編寫即可,java/c/c++/vc都行

基於你的題目求音樂播放器源代碼,用高級語言編寫即可,java/c/c++/vc...,
需要為你提供一份適用於初學者的代碼么,
有別的要求也可以與我們聯系,
帶著你的問題和Email來找我,
有機會會幫你,肯定救急,
請用BaiHi為我留言,

此回復針對所有來訪者和需求者有效,

ES:\\

Ⅳ c語言編寫音樂播放器

這個不用你寫,直接調用操作系統給出的函數就可以了,其實就是API,大多程序都是這樣寫出來的,自己去查微軟音樂媒體播放方面的API吧

Ⅳ 用C語言編寫音樂播放器的源代碼

如果你這個播放器是在電腦上使用,那用C語言顯然有點太小題大做了,用其他高級語言實現起來要簡單的多。如果是設計一個類似MP3的播放設備,那麼C語言幾乎是唯一的選擇,而且代碼復雜程度遠遠高於你的想像,不過幸運的是會有一些開源的代碼可以移植,所以讓這件事情也變得容易實現多了,如果再加上一個專用的解碼晶元,那軟體會簡單點,解碼效率也高多了。

Ⅵ 請問你有C語言編寫的 網路音樂播放器 類似於千千靜聽的源碼

我有千千靜聽的源代碼
雖不是很新的版本
但對編程應該有幫助的
留個郵箱或者聯系方式吧

Ⅶ 求一C語言編寫的 網路音樂播放器 類似於千千靜聽的源碼

網路播放器沒有 倒是有千千靜聽的源代碼 當然不是新版的代碼了 要的話 留個郵箱或者聯系方式吧

linux下c語言 音樂播放器編碼大概框架求高人指點。

Linux操作系統沒有自帶音頻解碼器,必須自己編寫。

Windows操作系統自帶音頻解碼器,調用介面是 Windows API 函數mciSendString。

函數原型:
MCIERROR mciSendString( LPCTSTR lpszCommand, LPTSTR lpszReturnString, UINT cchReturn, HANDLE hwndCallback );

Ⅸ 用C語言編寫音樂播放器的代碼

vc6.0下編譯可以的

#include <windows.h>
#include <mmsystem.h>

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

#define ID_PLAY 1000
#define ID_STOP 1001
#define ID_EXIT 1002

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
TCHAR clsName[] = TEXT ("clsMusicPlayer");
TCHAR title[] = TEXT ("Music Player");
WNDCLASS wc;
HWND hWnd;
MSG msg;
int cxScreen;
int cyScreen;
int winX;
int winY;
int winWidth;
int winHeight;

wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH);
wc.hCursor = LoadCursor (hInstance, IDC_ARROW);
wc.hIcon = LoadIcon (hInstance, IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = clsName;
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;

if ( !RegisterClass (&wc) )
{
MessageBox (NULL, TEXT ("RegisterClass Error"), TEXT ("ERROR"), MB_OK | MB_ICONINFORMATION);
return -1;
}

cxScreen = GetSystemMetrics (SM_CXSCREEN);
cyScreen = GetSystemMetrics (SM_CYSCREEN);

winWidth = cxScreen / 4;
winHeight = cyScreen / 3;
winX = (cxScreen - winWidth) / 2;
winY = (cyScreen - winHeight) / 2;

hWnd = CreateWindow (
clsName, title,
WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX,
winX, winY, winWidth, 100,
NULL, NULL, hInstance, NULL);

if ( !hWnd )
{
MessageBox (NULL, TEXT ("CreateWindow Error"), TEXT ("ERROR"), MB_OK | MB_ICONINFORMATION);
return -2;
}

ShowWindow (hWnd, SW_SHOW);
UpdateWindow (hWnd);

while ( GetMessage (&msg, NULL, 0, 0) > 0 )
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}

return msg.wParam;
}

int PlayMusic ()
{
HANDLE hFind;
WIN32_FIND_DATA findFileData;

static TCHAR szPath[1024] = TEXT (".\\*.wav");

hFind = FindFirstFile (szPath, &findFileData);
if ( hFind != INVALID_HANDLE_VALUE )
{
//MessageBox (NULL, findFileData.cFileName, "", 0);
PlaySound (findFileData.cFileName, NULL, SND_FILENAME | SND_ASYNC);
while ( FindNextFile (hFind, &findFileData) )
{
//MessageBox (NULL, findFileData.cFileName, "", 0);
PlaySound (findFileData.cFileName, NULL, SND_FILENAME | SND_ASYNC);
}
}
else
{
MessageBox (NULL, "沒找到文件", "", 0);
}
return 1;
}

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hDc;
PAINTSTRUCT ps;
HINSTANCE hInst;
RECT rect;

switch ( message )
{
case WM_CREATE:
{
GetClientRect (hWnd, &rect);
hInst = ((LPCREATESTRUCT)lParam)->hInstance;
CreateWindow (
"button",
TEXT ("播放"),
BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
rect.right / 10, rect.bottom / 10, 40, 25, hWnd, (HMENU)ID_PLAY, hInst, NULL);
CreateWindow (
"button",
TEXT ("停止"),
BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
rect.right / 10 + 50, rect.bottom / 10, 40, 25, hWnd, (HMENU)ID_STOP, hInst, NULL);
CreateWindow (
"button",
TEXT ("退出"),
BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
rect.right / 10 + 100, rect.bottom / 10, 40, 25, hWnd, (HMENU)ID_EXIT, hInst, NULL);
}
break;
case WM_COMMAND:
{
switch ( HIWORD (wParam) )
{
case BN_CLICKED:
{
switch ( LOWORD (wParam) )
{
case ID_PLAY:
{
PlayMusic ();
//PlaySound (TEXT ("D:\\音頻文件\\1.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
}
break;
case ID_STOP:
{
PlaySound (NULL, NULL, SND_FILENAME);
}
break;
case ID_EXIT:
{
SendMessage (hWnd, WM_CLOSE, 0, 0);
}
break;
}
}
break;
}
}
break;
case WM_PAINT:
{
hDc = BeginPaint (hWnd, &ps);

EndPaint (hWnd, &ps);
}
break;
case WM_CLOSE:
{
PostQuitMessage (0);
}
break;
case WM_DESTROY:
{
DestroyWindow (hWnd);
}
break;
default:
return DefWindowProc (hWnd, message, wParam, lParam);
}

return 0;
}

Ⅹ 親 ,可以給我個音樂播放器的c語言代碼嗎,我給高分,急啊,求幫忙,求詳解。

一款強大的播放器,c寫的哦!當然也有簡單的實例源代碼,具體的看圖~程序下載地址

熱點內容
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:742
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:171
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554