真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java音樂(lè)播放器代碼 javaswing音樂(lè)播放器

基于Android音樂(lè)播放器源代碼(正常播放、有列表)

package my.android.players;

創(chuàng)新互聯(lián)公司專(zhuān)注于山城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供山城營(yíng)銷(xiāo)型網(wǎng)站建設(shè),山城網(wǎng)站制作、山城網(wǎng)頁(yè)設(shè)計(jì)、山城網(wǎng)站官網(wǎng)定制、成都小程序開(kāi)發(fā)服務(wù),打造山城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供山城網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

import java.io.File;

import java.io.FilenameFilter;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.ImageButton;

import android.widget.TextView;

public class mainActivity extends Activity {

private ListString myMusicList=new ArrayListString();

//當(dāng)前播放歌曲的索引

private int currentListItem=0;

//音樂(lè)的路徑

private static final String MUSIC_PATH="/冊(cè)渣sdcard/mp3";

//播旅擾放對(duì)象

private MediaPlayer myMediaPlayer;

private TextView m_TextView;

//播放按鈕

private ImageButton m_start;

private ImageButton m_stop;

private ImageButton m_next;

private ImageButton m_last;

/*設(shè)定bIsPaused一開(kāi)始為false */

private boolean bIsRun = false;

private boolean isplay;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.main2);

myMediaPlayer=new MediaPlayer();

musicList();

m_TextView=(TextView)findViewById(R.id.mtextview);

m_start=(ImageButton)findViewById(R.id.imgbtn_start);

m_stop=(ImageButton)findViewById(R.id.imgbtn_stop);

m_next=(ImageButton)findViewById(R.id.imgbtn_next);

m_last=(ImageButton)findViewById(R.id.imgbtn_last);

listener();

Intent intent = this.getIntent();

Bundle bundle = intent.getExtras();

currentListItem = bundle.getInt("currentListItem");

isplay=bundle.getBoolean("isplay");

if(isplay==true)

{

bIsRun=false;

playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));

}

}

//監(jiān)聽(tīng)拆姿旦事件

void listener(){

//開(kāi)始

m_start.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

try

{

if(myMediaPlayer.isPlaying()==true)

{

myMediaPlayer.pause();

m_start.setImageResource(R.drawable.pause);

}

else

{

playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));

}

}

catch (IllegalStateException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

//下一首

m_next.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

nextMusic();

}

});

//上一首

m_last.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

lastMusic();

}

});

//停止

m_stop.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

stopMusic();

}

});

myMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override

public void onCompletion(MediaPlayer mp) {

// TODO Auto-generated method stub

nextMusic();

}

});

}

//播放音樂(lè)

void playMusic(String path){

try {

if(bIsRun==false)

{

myMediaPlayer.reset();

myMediaPlayer.setDataSource(path);

myMediaPlayer.prepare();

myMediaPlayer.start();

/*

* 取出歌曲名的.mp3后綴

* */

String str=(myMusicList.get(currentListItem)).toString();

System.out.println(str);

String str1[]=str.split("\\.");

System.out.println(str1[0]);

m_TextView.setText(str1[0]);

}

else

{

myMediaPlayer.start();

}

m_start.setImageResource(R.drawable.start);

bIsRun=true;

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

}

//下一首

void nextMusic(){

if(++currentListItem=myMusicList.size()){

currentListItem=0;

}

bIsRun=false;

playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));

}

//上一首

void lastMusic(){

if(--currentListItem0)

currentListItem=myMusicList.size()-1;

bIsRun=false;

playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));

}

//停止

void stopMusic() {

if (myMediaPlayer.isPlaying()) {

m_start.setImageResource(R.drawable.pause);

myMediaPlayer.stop();// 停止

bIsRun=false;

}

else

playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));

}

//當(dāng)用戶返回時(shí)結(jié)束音樂(lè)并釋放音樂(lè)對(duì)象

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

if(keyCode==KeyEvent.KEYCODE_BACK){

new AlertDialog.Builder(mainActivity.this).setTitle("message")

.setIcon(android.R.drawable.dialog_frame)

.setMessage("你確定要離開(kāi)嗎?")

.setPositiveButton("確定",new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

myMediaPlayer.stop();

myMediaPlayer.release();

finish();

}

}).setNegativeButton("取消",new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

}

}).show();

}

return super.onKeyDown(keyCode, event);

}

/**

* 文件過(guò)濾器

*

* @author

*

*/

class MusicFilter implements FilenameFilter {

@Override

public boolean accept(File dir, String filename) {

return (filename.endsWith(".mp3"));

}

}

//綁定音樂(lè)

void musicList(){

try{

File home=new File(MUSIC_PATH);

if(!home.exists())

home.mkdirs();

if(home.listFiles(new MusicFilter()).length=0){

for(File file:home.listFiles(new MusicFilter())){

myMusicList.add(file.getName().toString());

}

}

}

catch(Exception ex)

{

ex.printStackTrace();

}

}

}

package my.android.players;

import java.io.File;

import java.io.FilenameFilter;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.ListView;

public class Activity01 extends Activity {

//播放列表

private ListString myMusicList=new ArrayListString();

//當(dāng)前播放歌曲的索引

private int currentListItem;

//音樂(lè)的路徑

private static final String MUSIC_PATH="/sdcard/mp3";

//播放列表

private ListView m_ListView;

private boolean isplay=true;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

m_ListView=(ListView)findViewById(R.id.lv_music);

musicList();

//當(dāng)選擇列表項(xiàng)時(shí)播放音樂(lè)

m_ListView.setOnItemClickListener(new ListView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView? arg0, View arg1, int arg2,

long arg3) {

currentListItem = arg2;

Intent intent = new Intent();

Bundle mBundle=new Bundle();

mBundle.putInt("currentListItem", currentListItem);

mBundle.putBoolean("isplay", isplay);

intent.putExtras(mBundle);

intent.setClass(Activity01.this,mainActivity.class);

startActivity(intent);

finish();

}

});

}

/**

* 文件過(guò)濾器

*

* @author

*

*/

class MusicFilter implements FilenameFilter {

@Override

public boolean accept(File dir, String filename) {

return (filename.endsWith(".mp3"));

}

}

//綁定音樂(lè)

void musicList(){

try{

File home=new File(MUSIC_PATH);

if(!home.exists())

home.mkdirs();

if(home.listFiles(new MusicFilter()).length=0){

for(File file:home.listFiles(new MusicFilter())){

myMusicList.add(file.getName().toString());

}

ArrayAdapterString musicList=new ArrayAdapterString

(Activity01.this,android.R.layout.simple_list_item_1, myMusicList);

m_ListView.setAdapter(musicList);

}

}

catch(Exception ex)

{

ex.printStackTrace();

}

}

}

想用Java編寫(xiě)一個(gè)音樂(lè)播放器,將歷史記錄存放在MySql數(shù)據(jù)庫(kù)中,請(qǐng)大神給出思路

給你一個(gè)基礎(chǔ)的實(shí)現(xiàn)方法與一個(gè)完全開(kāi)發(fā)的實(shí)現(xiàn)方法:

基礎(chǔ)實(shí)現(xiàn)方法:

1)從網(wǎng)上搜索一個(gè)可以播放音樂(lè)的 java 類(lèi)庫(kù),該類(lèi)庫(kù)帶有音樂(lè)播放的API供外部程序調(diào)用。

2)你直接使用該音樂(lè)類(lèi)庫(kù)進(jìn)行音樂(lè)播放操作。

3)你設(shè)計(jì)一個(gè) Swing 界面在播放的時(shí)候,把播放的音簡(jiǎn)鬧察樂(lè)信息存在數(shù)據(jù)庫(kù)。

完全開(kāi)發(fā)方法:

1)你自己從最原始做起包括音樂(lè)文件的播放解碼等全部用 java 寫(xiě)出一個(gè)音樂(lè)類(lèi)庫(kù)供攔茄自己的程序調(diào)用。

2)彎腔你直接使用該音樂(lè)類(lèi)庫(kù)進(jìn)行音樂(lè)播放操作。

3)你設(shè)計(jì)一個(gè) Swing 界面在播放的時(shí)候,把播放的音樂(lè)信息存在數(shù)據(jù)庫(kù)。

尋音樂(lè)播放器源代碼,用高級(jí)語(yǔ)言編寫(xiě)即可,java/c/c++/vc都可以

給你個(gè)Java音樂(lè)播放器代碼,你試試!

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;

// 構(gòu)造函數(shù),其中包括了設(shè)置響應(yīng)窗口事件的監(jiān)聽(tīng)器。

MediaPlayer(String title) {

super(title);

/* 關(guān)閉按鈕的實(shí)現(xiàn)。。 */

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

dispose();

}

public void windowClosed(WindowEvent e) {

if (player != null)

player.close();

System.exit(0);

}

});

// 調(diào)用程序菜單欄的方法成員完成菜單的布置

setupMenu();

setSize(400, 400);

setVisible(true);

}

// 本方法用以設(shè)置程序菜單欄

public void setupMenu() {

// 設(shè)置一個(gè)菜單

Menu f = new Menu("文件");

// 往設(shè)置的菜單添加菜單項(xiàng)

MenuItem mi = new MenuItem("打開(kāi)");

f.add(mi);

mi.addActionListener(this);

f.addSeparator();

CheckboxMenuItem cbmi = new CheckboxMenuItem("循環(huán)", 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("播放控制世數(shù)譽(yù)"畢兄);

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();

// 設(shè)置一個(gè)菜單欄

MenuBar mb = new MenuBar();

mb.add(f);

mb.add?;

mb.add(l);

// 將構(gòu)造完成的菜單欄交給當(dāng)前程序的窗口;

setMenuBar(mb);

}

// 動(dòng)作時(shí)間響應(yīng)成員;捕捉發(fā)送到本對(duì)象的各種事件;

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

String cufile, selectfile, currentDirectory;

if (e.getActionCommand().equals("退出")) {

// 調(diào)用dispose以便執(zhí)行windowClosed

dispose();

return;

}

// 此事表明擁護(hù)選擇了“播放”命令;

// 如果當(dāng)前有一個(gè)文件可以播放則執(zhí)行播放命令;

if (e.getActionCommand().equals("播放")) {

if (player != null) {

player.start();

}

return;

}

// 如果當(dāng)前正在播放某一文件,則執(zhí)行暫停;

if (e.getActionCommand().equals("暫停")) {

if (player != null) {

player.stop();

}

return;

}

// 停止命令的響應(yīng);

if (e.getActionCommand().equals("停止")) {

if (player != null) {

player.stop();

player.setMediaTime(new Time(0));

}

return;

}

// 用戶選擇要播放的媒體文件

if (e.getActionCommand().equals("打開(kāi)")) {

FileDialog fd = new FileDialog(this, "打開(kāi)媒體文件", FileDialog.LOAD);

// fd.setDirectory(currentDirectory);

2008-2-6 02:46 回復(fù)

肆方茉莉

62位粉絲

6樓

fd.setVisible(true);

// 如果用戶放棄選擇文件,則返回

if (fd.getFile() == null) {

return;

}

// 保存了所選文件的名稱(chēng)及其路徑名稱(chēng)已被稍后使用

// 同時(shí)設(shè)置當(dāng)前文件夾路徑

selectfile = fd.getFile();

currentDirectory = fd.getDirectory();

cufile = currentDirectory + selectfile;

// 將用戶選擇的文件作為一個(gè)菜單項(xiàng)加入播放列表,該菜單項(xiàng)名為該文件名;

// 被點(diǎn)擊后給出的命令串是該文件的全路徑名

MenuItem mi = new MenuItem(selectfile);

mi.setActionCommand(cufile);

MenuBar mb = getMenuBar();

Menu m = mb.getMenu(2);

mi.addActionListener(this);

m.add(mi);

} else {

// 程序邏輯運(yùn)行到次表示用戶選擇了一個(gè)“播放列表”中的媒體文件

// 此時(shí)可以通過(guò)如下動(dòng)作獲得該文件的全路徑名

cufile = e.getActionCommand();

selectfile = cufile;

}

// 如果存在一個(gè)播放器,則先將其關(guān)閉,稍后再重新創(chuàng)建

// 創(chuàng)建播放器時(shí)需要捕捉一些異常

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("無(wú)法創(chuàng)建播放器");

return;

}

first = false;

setTitle(selectfile);

// 設(shè)置處理播放控制器實(shí)際的對(duì)象;

/**/

player.addControllerListener(this);

player.prefetch();

}

// 菜單狀態(tài)改變事件的響應(yīng)函數(shù);

public void itemStateChanged(ItemEvent arg0) {

// TODO Auto-generated method stub

}

public static void main(String[] args) {

// TODO Auto-generated method stub

new MediaPlayer("播放器");

}

// 調(diào)用繪圖函數(shù)進(jìn)行界面的繪制

// public void update() {

// }

// 繪圖函數(shù)成員

//public void paint(Graphics g) {

// }

public void controllerUpdate(ControllerEvent e) {

// TODO Auto-generated method stub

Container tainer = getContentPane();

// 調(diào)用player.close()時(shí)ControllerClosedEvent事件出現(xiàn)

// 如果存在視覺(jué)部件,則該部件應(yīng)該拆除(為了一致起見(jiàn),我們對(duì)控制面版部件也執(zhí)行同樣的操作,下一次需要時(shí)再構(gòu)造)

if (e instanceof ControllerClosedEvent) {

if (vc != null) {

remove(vc);

vc = null;

}

if (cc != null) {

remove(cc);

cc = null;

}

}

// 播放結(jié)束時(shí),將播放指針置于文件之首,如果設(shè)定了循環(huán)播放,則再次啟動(dòng)播放器;

if (e instanceof EndOfMediaEvent) {

player.setMediaTime(new Time(0));

if (loop) {

player.start();

}

return;

}

// PrefetchCompletEvent事件發(fā)生后調(diào)用start,正式啟動(dòng)播放

if (e instanceof PrefetchCompleteEvent) {

player.start();

return;

}

// 本事件表示由于播放的資源已經(jīng)確定;此時(shí)要將媒體的圖形conmopnent

// 如果有顯示出來(lái),同時(shí)將播放器player的控制顯示到窗口里;

if (e instanceof RealizeCompleteEvent) {

// 如果媒體中有圖像,將對(duì)應(yīng)圖像component載入窗體;

vc = player.getVisualComponent();

if (vc != null)

tainer.add(vc, BorderLayout.CENTER);

// 將對(duì)應(yīng)控制器component載入窗體;

cc = player.getControlPanelComponent();

cc.setBackground(Color.blue);

if (cc != null)

tainer.add(cc, BorderLayout.SOUTH);

// 有一些特殊媒體在播放時(shí)提供另外的控制手段,將控制器一并加入窗口;

/*

* gc=player.getGainControl(); gcc=gc.getControlComponent();

* if(gcc!=null) tainer.add(gcc,BorderLayout.NORTH);

*/

// 根據(jù)媒體文件中是否有圖像,設(shè)定相應(yīng)的窗口大小

if (vc != null) {

pack();

return;

} else {

setSize(300, 75);

setVisible(true);

return;

}

}

}

}

希望對(duì)你有幫助!


本文題目:java音樂(lè)播放器代碼 javaswing音樂(lè)播放器
標(biāo)題URL:http://weahome.cn/article/dshoiee.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部