欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

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

      時(shí)間:2019-05-15 02:53:50下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《java音樂(lè)播放器源代碼(ChatClient)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《java音樂(lè)播放器源代碼(ChatClient)》。

      第一篇:java音樂(lè)播放器源代碼(ChatClient)

      package ChatClient;

      import java.awt.*;import java.net.*;import java.awt.event.*;import java.io.*;import java.applet.*;class AudioClipWindow extends Frame implements Runnable,ItemListener,ActionListener { Thread thread;

      Choice choice;

      URL url;

      AudioClip clip;

      Button buttonPlay,buttonLoop,buttonStop;

      String str;

      AudioClipWindow(ActionListener chatClient)

      {

      thread=new Thread(this);

      choice=new Choice();

      choice.add(“陳綺貞-我在那一角落患過(guò)傷風(fēng).wav”);

      choice.add(“no one wants forever.wma.wav”);

      choice.add(“中島美嘉-雪之華(韓雪-飄雪)日文版.wav”);

      choice.addItemListener(this);

      buttonPlay=new Button(“播放”);

      buttonLoop=new Button(“循環(huán)”);

      buttonStop=new Button(“停止”);

      buttonPlay.addActionListener(this);

      buttonStop.addActionListener(this);

      buttonLoop.addActionListener(this);

      setLayout(new FlowLayout());

      add(choice);

      add(buttonPlay);

      add(buttonLoop);

      add(buttonStop);

      setSize(350,120);

      setVisible(true);

      addWindowListener(new WindowAdapter()

      { public void windowClosing(WindowEvent e)

      { System.exit(0);

      }

      });

      validate();

      }

      public void itemStateChanged(ItemEvent e)

      { str=choice.getSelectedItem();

      if(!(thread.isAlive()))

      { thread=new Thread(this);

      }

      try{ thread.start();

      }

      catch(Exception ee){}

      }

      public void run()

      { try{ File file=new File(str);

      url=file.toURL();

      clip=Applet.newAudioClip(url);

      }

      catch(Exception e)

      { System.out.println(e);

      }

      }

      public void actionPerformed(ActionEvent e)

      { if(e.getSource()==buttonPlay)

      { clip.play();

      }

      else if(e.getSource()==buttonLoop)

      { clip.loop();

      }

      if(e.getSource()==buttonStop)

      { clip.stop();

      }

      } }

      第二篇:基于java的音樂(lè)播放器課程設(shè)計(jì)報(bào)告

      Java課程設(shè)計(jì)報(bào)告

      題目:java音樂(lè)播放器

      名 學(xué)

      號(hào) 院

      系 班

      級(jí) 專

      業(yè) 任課教師

      1.設(shè)計(jì)內(nèi)容及要求

      能夠?qū)崿F(xiàn)簡(jiǎn)單的音樂(lè)播放器功能,如:打開(kāi)本地文件,播放,暫停,停止,背景播放,單曲循環(huán)等等,界面充實(shí),交互友好,可以添加多首歌曲目錄

      一個(gè)簡(jiǎn)單的基于java語(yǔ)言的音樂(lè)播放器,菜單欄:文件,播放控制和播放列表,文件菜單包含打開(kāi)、循環(huán)和退出三個(gè)菜單項(xiàng);播放控制菜單包含播放、暫停和停止三個(gè)菜單項(xiàng),播放列表菜單則是當(dāng)向里面添加歌曲之后才能夠查看到里面所包含的歌曲目錄。當(dāng)播放歌曲時(shí),可以調(diào)節(jié)音量大小或者設(shè)置是否靜音;可以查看當(dāng)前播放音樂(lè)的相關(guān)屬性,如:歌曲名,歌手,發(fā)布時(shí)間,所屬專輯等等。

      2.需求分析

      1、時(shí)間跟蹤條:根據(jù)歌曲播放的進(jìn)度,控制條自動(dòng)進(jìn)行追蹤,用戶可以

      隨時(shí)了解歌曲的播放進(jìn)度

      2、音量控制鍵:可以點(diǎn)擊該控鍵進(jìn)行音量大小的調(diào)節(jié)以及是否靜音的設(shè)

      3、屬性查詢鍵:通過(guò)該控鍵,用戶可以查看當(dāng)前播放音樂(lè)的相屬性,獲

      取關(guān)于該歌曲的用戶所需的相關(guān)信息。

      4、菜單欄:

      ①文件:

      打開(kāi):用戶通過(guò)該菜單項(xiàng)打開(kāi)本地音樂(lè)文件,聽(tīng)任何用戶想

      聽(tīng)的歌曲

      循環(huán):通過(guò)循環(huán)設(shè)置,用戶可以重復(fù)的播放一首喜歡的歌曲

      退出:退出音樂(lè)播放器,及退出該程序

      ②播放控制:

      播放:選擇歌曲之后,通過(guò)點(diǎn)擊播放菜單項(xiàng)啟動(dòng)播放器播

      放音樂(lè)

      暫停:暫停當(dāng)前正在播放的音樂(lè)

      停止:停止當(dāng)前正在播放的音樂(lè)

      ③播放列表:當(dāng)用戶通過(guò)文件打開(kāi)本地音樂(lè)文件后,及相當(dāng)于在

      播放列表里面添加了歌曲,及形成相應(yīng)的歌曲播放目錄

      3.總體設(shè)計(jì)

      結(jié)合需求分析來(lái)看,整個(gè)設(shè)計(jì)包含了簡(jiǎn)單的菜單欄,根據(jù)用戶需求設(shè)置了三個(gè)簡(jiǎn)單的實(shí)現(xiàn)基本操作的菜單,分別是:文件,播放控制,播放列表;根據(jù)具體的操作每個(gè)菜單還包含了相應(yīng)的菜單項(xiàng),文件:打開(kāi),循環(huán),退出;播放控制:播放,暫停,停止;播放列表則沒(méi)有菜單項(xiàng),該菜單就是用來(lái)顯示或者查看相應(yīng)的歌曲目錄的。

      該音樂(lè)播放器設(shè)置了兩個(gè)窗口,運(yùn)行程序時(shí)打開(kāi)的初始化歡迎界面,用戶可以根據(jù)自己的需求進(jìn)行菜單欄里面的基本操作和相應(yīng)的設(shè)置,當(dāng)用戶添加或者打開(kāi)音樂(lè)播放文件的時(shí)候,程序?qū)?huì)顯示出第二個(gè)音樂(lè)文件播放窗口,與此同時(shí),第一個(gè)初始化窗口將會(huì)自動(dòng)隱藏,在音樂(lè)播放窗口里面用戶可以進(jìn)行相關(guān)的音樂(lè)播放的控制操作。

      當(dāng)用戶進(jìn)入音樂(lè)播放窗口時(shí),該窗口有幾個(gè)快捷控制的控鍵:時(shí)間追蹤軸:可以實(shí)現(xiàn)播放的前進(jìn)、后退功能,根據(jù)用戶需求調(diào)節(jié)音樂(lè)的播放進(jìn)度等;音量控制:設(shè)置靜音,打開(kāi)揚(yáng)聲器或者調(diào)節(jié)音量大小;播放列表:查看當(dāng)前播放音樂(lè)的相關(guān)屬性。4.主要功能設(shè)計(jì)流程

      5.系統(tǒng)實(shí)現(xiàn)及測(cè)試:

      (一)JMF(java媒體框架)簡(jiǎn)介

      JMF 即Java媒體框架。其核心框架支持不同媒體,如音頻輸出和視頻輸出,包括時(shí)間的時(shí)鐘同步。它是一個(gè)標(biāo)準(zhǔn)的擴(kuò)展框架,允許用戶制作純音頻流和視頻流。

      JMF實(shí)際上是Java的一個(gè)類包。它包括了一個(gè)開(kāi)放的媒體架構(gòu),可使開(kāi)發(fā)人員靈活采用各種媒體回放、捕獲組件,或采用他們自己的定制的內(nèi)插組件。

      JMF軟件是Java Media系列軟件的一部分。采用各種Java Media API,軟件開(kāi)發(fā)商人員就能容易、快速地為他們已有的各種應(yīng)用程序和客戶端,Java小程序增添豐富的媒體功能,如流式視頻、3D圖像和影像處理等。就是 說(shuō),各種Java Media API發(fā)揮了Java平臺(tái)的固有優(yōu)勢(shì),將“編寫(xiě)一次,到處運(yùn)行”的能力擴(kuò)展到了圖像、影像和數(shù)字媒體等各種應(yīng)用領(lǐng)域,從而大大縮減了開(kāi)發(fā)時(shí)間和降低了開(kāi)發(fā) 成本。

      在開(kāi)發(fā)JMF 應(yīng)用程序之前要完全理解JMF 的體系架構(gòu)、接口和類。就拿我們的家用攝像機(jī)系統(tǒng)作個(gè)例子。首先用攝像機(jī)拍攝內(nèi)容,拍攝下來(lái)的內(nèi)容錄制在DV帶中。DV帶可以放在放像機(jī)里播放、放像機(jī)提供視頻信號(hào)給電視機(jī),提供音頻信號(hào)給音箱,這樣我們就可以在電視機(jī)上看到畫(huà)面,從音箱里聽(tīng)到聲音。JMF API 提供的也是同樣的模型。

      JMF 提供的模型可大致分為七類

      * 數(shù)據(jù)源(Data source)

      * 截取設(shè)備(Capture Device,包括視頻和音頻截取設(shè)備)

      * 播放器(Player)

      * 處理器(Processor)

      * 數(shù)據(jù)池(DataSink)

      * 數(shù)據(jù)格式(Format)

      * 管理器(Manager)

      如果只是想觀看捕獲的內(nèi)容,只需要使用捕獲數(shù)據(jù)源創(chuàng)建播放器Player即可。如果想把捕獲的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)或者保存起來(lái),就需要?jiǎng)?chuàng)建處理器Processor。

      基本步驟是首先獲取視頻、音頻捕獲設(shè)備的信息,然后再根據(jù)取得的設(shè)備信息確定設(shè)備的位置。找到設(shè)備的位置以后,調(diào)用ManageCreatePlayer方法創(chuàng)建Player,當(dāng)Player開(kāi)始播放的時(shí)候,就開(kāi)始了捕獲的過(guò)程。

      有多種方法獲得捕獲設(shè)備信息,可以通過(guò)查詢指定的格式,也可以查詢特定的設(shè)備名字。Player準(zhǔn)備好播放數(shù)據(jù),當(dāng)Player發(fā)出這個(gè)事件時(shí),就可以獲取播放器的可視面板和控制面板了。具體步驟如下:

      1.先把所有的捕獲設(shè)備調(diào)出來(lái)

      2.創(chuàng)建Player,當(dāng)Play開(kāi)始的時(shí)候,就開(kāi)始了音頻捕獲的過(guò)程

      3.以MediaLocator為參數(shù),創(chuàng)建Player 4.為PLAYER添加監(jiān)聽(tīng)器,以便監(jiān)聽(tīng)RealizeComplete事件

      (二)代碼實(shí)現(xiàn)

      (1)添加庫(kù)、包等相關(guān)文件 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.*;

      (2)初始化窗口

      1代碼實(shí)現(xiàn)

      private void init(){

      // TODO Auto-generated method stub

      this.setLayout(new BorderLayout());

      JPanel lrcPanel = new JPanel();

      JPanel controP= new JPanel();

      jta = new JTextArea(22,35);

      jta.setBackground(Color.black);

      jta.setLineWrap(true);

      jta.setWrapStyleWord(true);

      jta.setEditable(false);

      lrcPanel.add(new JScrollPane(jta));

      lrcPanel.setBackground(Color.black);

      lrcPanel.setVisible(true);

      JButton Jstart= new JButton(“");Jstart.setIcon(new ImageIcon(”start.png“));

      Jstart.addActionListener(new ActionListener(){

      @Override public void actionPerformed(ActionEvent arg0){

      // TODO Auto-generated method stub

      start();} });JButton Jpause=new JButton();Jpause.setIcon(new ImageIcon(”停止.png“));Jpause.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

      stop();

      } });JButton Jnext =new JButton();Jnext.setIcon(new ImageIcon(”next.png“));Jnext.addActionListener(new ActionListener(){

      @Override public void actionPerformed(ActionEvent e){

      // TODO Auto-generated method stub

      next();} });JButton Jprior =new JButton();Jprior.setIcon(new ImageIcon(”back.png“));Jprior.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

      back();} });controP.setLayout(new FlowLayout());controP.add(Jprior);controP.add(Jstart);controP.add(Jpause);

      } controP.add(Jnext);

      this.add(lrcPanel,BorderLayout.CENTER);this.add(controP,BorderLayout.SOUTH);

      (3)音樂(lè)播放窗口機(jī)基本功能的實(shí)現(xiàn) ①界面

      ②代碼實(shí)現(xiàn)

      // 播放方法

      public void start(){

      if(isplaying==false){

      try {

      player =

      Manager.createPlayer(new File(mp3List.get

      (mp3NO)).toURI().toURL());

      jta.setText(null);

      } catch(NoPlayerException e){

      // TODO 自動(dòng)生成 catch BufferedReader(new FileReader(lcf));

      String s;

      e.printStackTrace();

      System.out.println(”不能播放此文件!“);

      return;

      } catch(IOException e){

      // TODO 自動(dòng)生成 catch 塊

      e.printStackTrace();

      return;

      }

      if(player == null){

      System.out.println(”播放文件為空!“);

      return;

      }

      player.addControllerListener(this);

      // 提取媒體內(nèi)容

      player.prefetch();

      isplaying=true;//正在播放一首歌

      setLrc();

      } }

      private void setLrc(){

      // TODO Auto-generated method stub

      File lrcfile = new File(lrcpath);

      if(!lrcfile.exists()){

      lrcfile.mkdir();

      }

      String lrcFName = getlrcFName();

      BufferedReader bReader;

      File lcf= new File(lrcpath+lrcFName+”.lrc“);

      System.out.println(lcf.getName());

      try {

      bReader = new while((s=bReader.readLine())!= null){

      jta.append(” “+s);

      jta.append(”n“);

      }

      } catch(Exception e){

      // TODO Auto-generated catch block

      jta.setText(”沒(méi)有歌詞“);

      System.out.println(”沒(méi)有歌詞文件!“);

      }

      }

      private String getlrcFName(){//解析歌曲名;

      // TODO Auto-generated method stub

      String musicPath = mp3List.get(mp3NO);

      String s =musicPath.substring(11);

      System.out.println(s);

      String []str = s.split(”.“);

      String lrcFName=str[0];

      System.out.println(lrcFName);

      return lrcFName;}

      public void stop(){

      player.stop();

      isplaying=false;}

      public void next(){

      if(isplaying==true)

      stop();

      if(mp3NO

      mp3NO++;

      start();

      }

      else{

      jta.setText(”沒(méi)有下一首了

      // 當(dāng)提取媒體的內(nèi)容結(jié)束

      if(e instanceof PrefetchCompleteEvent){

      System.out.println(“內(nèi)容結(jié)束”);

      player.start();

      return;

      }(<_>“);

      } } public void back(){

      if(isplaying)

      stop();

      if(mp3NO>0){

      mp3NO--;

      start();

      }

      else

      jta.setText(”已經(jīng)是第一首歌了(<_>)“);}

      public void controllerUpdate(ControllerEvent e){

      // 當(dāng)媒體播放結(jié)束時(shí),循環(huán)播放

      if(e instanceof EndOfMediaEvent){

      isplaying=false;

      mp3NO++;

      System.out.println(mp3NO);

      if(mp3NO < mp3List.size()){

      this.start();

      }

      return;

      }

      // 當(dāng)實(shí)例化后

      if(e instanceof RealizeCompleteEvent){

      System.out.println(”實(shí)例化“);

      // pack();//執(zhí)行pack()操作

      return;

      }

      }

      public void setMp3List(){

      File file = new File(musicpath);

      if(!file.exists()){

      file.mkdir();

      }

      File[] mcFiles;

      mcFiles = file.listFiles();

      if(mcFiles!=null){

      for(File f : mcFiles){

      System.out.println(f.getPath());

      mp3List.add(f.getPath());

      }

      }else

      System.out.println(”MyMusic中沒(méi)有歌曲文件");

      } 6.總結(jié)與說(shuō)明

      在做寫(xiě)程序?qū)崿F(xiàn)功能的過(guò)程中,界面和基本功能的設(shè)計(jì)需要較強(qiáng)的邏輯思維,一不小心就容易出錯(cuò),在具體的功能設(shè)計(jì)和實(shí)現(xiàn)的過(guò)程中要盡可能用最簡(jiǎn)單的語(yǔ)句實(shí)現(xiàn)基本的播放器功能。我覺(jué)得可以設(shè)計(jì)更多的菜單及菜單項(xiàng)目從而實(shí)現(xiàn)更多的功能,如:刪除,保存等,還可以實(shí)現(xiàn)更多的背景效果或者更多可選擇的皮膚,還可以對(duì)按鈕添加音效效果,這樣感覺(jué)整個(gè)音樂(lè)播放器更具有靈活性,媒體感更強(qiáng)烈一些,界面會(huì)更加豐富和生動(dòng)一些。

      通過(guò)自己做課程設(shè)計(jì),自己設(shè)計(jì)界面,功能和設(shè)計(jì)功能的代碼實(shí)現(xiàn),將理論知識(shí)運(yùn)用到實(shí)際操作中,加深了對(duì)理論知識(shí)的理解和記憶,在做程序設(shè)計(jì)的過(guò)程中,對(duì)很多代碼的多次操作和重復(fù)使用,使得對(duì)很多基本的代碼和相關(guān)的操作能夠牢固的記憶。

      第三篇:基于java的音樂(lè)播放器課程設(shè)計(jì)報(bào)告

      Java課程設(shè)計(jì)報(bào)告

      題目:java音樂(lè)播放器

      名 學(xué)

      號(hào) 院

      系 班

      級(jí) 專

      業(yè) 任課教師

      1.設(shè)計(jì)內(nèi)容及要求

      能夠?qū)崿F(xiàn)簡(jiǎn)單的音樂(lè)播放器功能,如:打開(kāi)本地文件,播放,暫停,停止,背景播放,單曲循環(huán)等等,界面充實(shí),交互友好,可以添加多首歌曲目錄

      一個(gè)簡(jiǎn)單的基于java語(yǔ)言的音樂(lè)播放器,菜單欄:文件,播放控制和播放列表,文件菜單包含打開(kāi)、循環(huán)和退出三個(gè)菜單項(xiàng);播放控制菜單包含播放、暫停和停止三個(gè)菜單項(xiàng),播放列表菜單則是當(dāng)向里面添加歌曲之后才能夠查看到里面所包含的歌曲目錄。當(dāng)播放歌曲時(shí),可以調(diào)節(jié)音量大小或者設(shè)置是否靜音;可以查看當(dāng)前播放音樂(lè)的相關(guān)屬性,如:歌曲名,歌手,發(fā)布時(shí)間,所屬專輯等等。

      2.需求分析

      1、時(shí)間跟蹤條:根據(jù)歌曲播放的進(jìn)度,控制條自動(dòng)進(jìn)行追蹤,用戶可以

      隨時(shí)了解歌曲的播放進(jìn)度

      2、音量控制鍵:可以點(diǎn)擊該控鍵進(jìn)行音量大小的調(diào)節(jié)以及是否靜音的設(shè)

      3、屬性查詢鍵:通過(guò)該控鍵,用戶可以查看當(dāng)前播放音樂(lè)的相屬性,獲

      取關(guān)于該歌曲的用戶所需的相關(guān)信息。

      4、菜單欄:

      ①文件:

      打開(kāi):用戶通過(guò)該菜單項(xiàng)打開(kāi)本地音樂(lè)文件,聽(tīng)任何用戶想

      聽(tīng)的歌曲

      循環(huán):通過(guò)循環(huán)設(shè)置,用戶可以重復(fù)的播放一首喜歡的歌曲

      退出:退出音樂(lè)播放器,及退出該程序

      ②播放控制:

      播放:選擇歌曲之后,通過(guò)點(diǎn)擊播放菜單項(xiàng)啟動(dòng)播放器播

      放音樂(lè)

      暫停:暫停當(dāng)前正在播放的音樂(lè)

      停止:停止當(dāng)前正在播放的音樂(lè)

      ③播放列表:當(dāng)用戶通過(guò)文件打開(kāi)本地音樂(lè)文件后,及相當(dāng)于在

      播放列表里面添加了歌曲,及形成相應(yīng)的歌曲播放目錄

      3.總體設(shè)計(jì)

      結(jié)合需求分析來(lái)看,整個(gè)設(shè)計(jì)包含了簡(jiǎn)單的菜單欄,根據(jù)用戶需求設(shè)置了三個(gè)簡(jiǎn)單的實(shí)現(xiàn)基本操作的菜單,分別是:文件,播放控制,播放列表;根據(jù)具體的操作每個(gè)菜單還包含了相應(yīng)的菜單項(xiàng),文件:打開(kāi),循環(huán),退出;播放控制:播放,暫停,停止;播放列表則沒(méi)有菜單項(xiàng),該菜單就是用來(lái)顯示或者查看相應(yīng)的歌曲目錄的。

      該音樂(lè)播放器設(shè)置了兩個(gè)窗口,運(yùn)行程序時(shí)打開(kāi)的初始化歡迎界面,用戶可以根據(jù)自己的需求進(jìn)行菜單欄里面的基本操作和相應(yīng)的設(shè)置,當(dāng)用戶添加或者打開(kāi)音樂(lè)播放文件的時(shí)候,程序?qū)?huì)顯示出第二個(gè)音樂(lè)文件播放窗口,與此同時(shí),第一個(gè)初始化窗口將會(huì)自動(dòng)隱藏,在音樂(lè)播放窗口里面用戶可以進(jìn)行相關(guān)的音樂(lè)播放的控制操作。

      當(dāng)用戶進(jìn)入音樂(lè)播放窗口時(shí),該窗口有幾個(gè)快捷控制的控鍵:時(shí)間追蹤軸:可以實(shí)現(xiàn)播放的前進(jìn)、后退功能,根據(jù)用戶需求調(diào)節(jié)音樂(lè)的播放進(jìn)度等;音量控制:設(shè)置靜音,打開(kāi)揚(yáng)聲器或者調(diào)節(jié)音量大小;播放列表:查看當(dāng)前播放音樂(lè)的相關(guān)屬性。4.主要功能設(shè)計(jì)流程

      5.系統(tǒng)實(shí)現(xiàn)及測(cè)試:

      (一)JMF(java媒體框架)簡(jiǎn)介

      JMF 即Java媒體框架。其核心框架支持不同媒體,如音頻輸出和視頻輸出,包括時(shí)間的時(shí)鐘同步。它是一個(gè)標(biāo)準(zhǔn)的擴(kuò)展框架,允許用戶制作純音頻流和視頻流。

      JMF實(shí)際上是Java的一個(gè)類包。它包括了一個(gè)開(kāi)放的媒體架構(gòu),可使開(kāi)發(fā)人員靈活采用各種媒體回放、捕獲組件,或采用他們自己的定制的內(nèi)插組件。

      JMF軟件是Java Media系列軟件的一部分。采用各種Java Media API,軟件開(kāi)發(fā)商人員就能容易、快速地為他們已有的各種應(yīng)用程序和客戶端,Java小程序增添豐富的媒體功能,如流式視頻、3D圖像和影像處理等。就是 說(shuō),各種Java Media API發(fā)揮了Java平臺(tái)的固有優(yōu)勢(shì),將“編寫(xiě)一次,到處運(yùn)行”的能力擴(kuò)展到了圖像、影像和數(shù)字媒體等各種應(yīng)用領(lǐng)域,從而大大縮減了開(kāi)發(fā)時(shí)間和降低了開(kāi)發(fā) 成本。

      在開(kāi)發(fā)JMF 應(yīng)用程序之前要完全理解JMF 的體系架構(gòu)、接口和類。就拿我們的家用攝像機(jī)系統(tǒng)作個(gè)例子。首先用攝像機(jī)拍攝內(nèi)容,拍攝下來(lái)的內(nèi)容錄制在DV帶中。DV帶可以放在放像機(jī)里播放、放像機(jī)提供視頻信號(hào)給電視機(jī),提供音頻信號(hào)給音箱,這樣我們就可以在電視機(jī)上看到畫(huà)面,從音箱里聽(tīng)到聲音。JMF API 提供的也是同樣的模型。

      JMF 提供的模型可大致分為七類

      * 數(shù)據(jù)源(Data source)

      * 截取設(shè)備(Capture Device,包括視頻和音頻截取設(shè)備)

      * 播放器(Player)

      * 處理器(Processor)

      * 數(shù)據(jù)池(DataSink)

      * 數(shù)據(jù)格式(Format)

      * 管理器(Manager)

      如果只是想觀看捕獲的內(nèi)容,只需要使用捕獲數(shù)據(jù)源創(chuàng)建播放器Player即可。如果想把捕獲的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)或者保存起來(lái),就需要?jiǎng)?chuàng)建處理器Processor。

      基本步驟是首先獲取視頻、音頻捕獲設(shè)備的信息,然后再根據(jù)取得的設(shè)備信息確定設(shè)備的位置。找到設(shè)備的位置以后,調(diào)用ManageCreatePlayer方法創(chuàng)建Player,當(dāng)Player開(kāi)始播放的時(shí)候,就開(kāi)始了捕獲的過(guò)程。

      有多種方法獲得捕獲設(shè)備信息,可以通過(guò)查詢指定的格式,也可以查詢特定的設(shè)備名字。Player準(zhǔn)備好播放數(shù)據(jù),當(dāng)Player發(fā)出這個(gè)事件時(shí),就可以獲取播放器的可視面板和控制面板了。具體步驟如下:

      1.先把所有的捕獲設(shè)備調(diào)出來(lái)

      2.創(chuàng)建Player,當(dāng)Play開(kāi)始的時(shí)候,就開(kāi)始了音頻捕獲的過(guò)程

      3.以MediaLocator為參數(shù),創(chuàng)建Player 4.為PLAYER添加監(jiān)聽(tīng)器,以便監(jiān)聽(tīng)RealizeComplete事件

      (二)代碼實(shí)現(xiàn)

      (1)添加庫(kù)、包等相關(guān)文件 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.*;

      (2)初始化窗口 ①界面

      ②代碼實(shí)現(xiàn)

      public void setupMenu(){

      Menu f = new Menu(“文件”);

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

      CheckboxMenuItem cbmi = new CheckboxMenuItem(“循環(huán)”, false);MenuItem ee = new MenuItem(“退出”);f.add(mi);f.add(cbmi);f.add(ee);

      mi.addActionListener(this);cbmi.addActionListener(this);ee.addActionListener(this);f.addSeparator();f.addSeparator();f.addSeparator();

      Menu l = new Menu(“播放列表”);Menu c = new Menu(“播放控制”);

      MenuItem move = new MenuItem(“播放”);MenuItem pause = new MenuItem(“暫?!?;MenuItem stop = new MenuItem(“停止”);move.addActionListener(this);pause.addActionListener(this);stop.addActionListener(this);c.add(move);c.add(pause);c.add(stop);

      c.addSeparator();c.addSeparator();c.addSeparator();

      MenuBar mb = new MenuBar();mb.add(f);mb.add(c);mb.add(l);

      setMenuBar(mb);}

      (3)音樂(lè)播放窗口機(jī)基本功能的實(shí)現(xiàn) ①界面

      ②代碼實(shí)現(xiàn)

      public void actionPerformed(ActionEvent e){

      String cufile, selectfile, currentDirectory;if(e.getActionCommand().equals(“退出”)){

      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(“打開(kāi)”)){

      FileDialog fd = new FileDialog(this, “打開(kāi)媒體文件”, FileDialog.LOAD);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;}

      if(player == null){

      System.out.println(“無(wú)法創(chuàng)建播放器”);return;}

      first = false;

      setTitle(selectfile);

      player.addControllerListener(this);player.prefetch();}

      public void itemStateChanged(ItemEvent arg0){ }

      public static void main(String[] args){

      new MediaPlayer(“播放器”);}

      public void controllerUpdate(ControllerEvent e){

      Container tainer = getContentPane();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;}

      if(e instanceof PrefetchCompleteEvent){

      player.start();return;}

      if(e instanceof RealizeCompleteEvent){

      vc = player.getVisualComponent();if(vc!= null)

      tainer.add(vc, BorderLayout.CENTER);

      cc = player.getControlPanelComponent();cc.setBackground(Color.blue);if(cc!= null)

      { tainer.add(cc, BorderLayout.SOUTH);if(vc!= null){

      pack();return;}

      Else {

      setSize(300, 75);setVisible(true);return;} } }

      }

      6.總結(jié)與說(shuō)明

      在做寫(xiě)程序?qū)崿F(xiàn)功能的過(guò)程中,界面和基本功能的設(shè)計(jì)需要較強(qiáng)的邏輯思維,一不小心就容易出錯(cuò),在具體的功能設(shè)計(jì)和實(shí)現(xiàn)的過(guò)程中要盡可能用最簡(jiǎn)單的語(yǔ)句實(shí)現(xiàn)基本的播放器功能。我覺(jué)得可以設(shè)計(jì)更多的菜單及菜單項(xiàng)目從而實(shí)現(xiàn)更多的功能,如:刪除,保存等,還可以實(shí)現(xiàn)更多的背景效果或者更多可選擇的皮膚,還可以對(duì)按鈕添加音效效果,這樣感覺(jué)整個(gè)音樂(lè)播放器更具有靈活性,媒體感更強(qiáng)烈一些,界面會(huì)更加豐富和生動(dòng)一些。

      通過(guò)自己做課程設(shè)計(jì),自己設(shè)計(jì)界面,功能和設(shè)計(jì)功能的代碼實(shí)現(xiàn),將理論知識(shí)運(yùn)用到實(shí)際操作中,加深了對(duì)理論知識(shí)的理解和記憶,在做程序設(shè)計(jì)的過(guò)程中,對(duì)很多代碼的多次操作和重復(fù)使用,使得對(duì)很多基本的代碼和相關(guān)的操作能夠牢固的記憶。

      第四篇:音樂(lè)播放器作文

      音樂(lè)播放器作文

      我有一臺(tái)音樂(lè)播放器,我非常喜歡它,給它取名為小白。這是我的一位好朋友送給我的。小白穿著一身漂亮的“白襯衫”還配著一條黑色的漂亮“短裙子”,再配上優(yōu)美的音樂(lè),簡(jiǎn)直就是個(gè)小姑娘在翩翩起舞。小白是一個(gè)不太規(guī)則的長(zhǎng)方體,其中,它長(zhǎng)7厘米,寬4厘米,厚一厘米左右。小白身上有六個(gè)按鈕,它們分別是:開(kāi)關(guān)按鈕、確定按鈕、待機(jī)按鈕、上翻按鈕、播放按鈕以及下翻按鈕,在播放按鈕正上方有一個(gè)小正方形,上面還有許多小洞洞,我想那應(yīng)該是發(fā)音的吧!小白和一枚雞蛋比起來(lái),可輕多了,它可以帶在身上,不像那些錄音機(jī)這么大,這么重。

      小白不但外形漂亮,而且我和它在生活中還是一對(duì)兒形影不離的好朋友呢!每當(dāng)我孤獨(dú)、寂寞的時(shí)候,小白總是陪伴我;每當(dāng)我高興時(shí),我不僅和家人分享快樂(lè),我還和小白一起分享快樂(lè)。小白也需要我,有的時(shí)候,小白沒(méi)電了,它都會(huì)響起“嘟嘟”的警告聲,似乎在說(shuō)“小主人,我的肚子餓了,快給我吃飯。”有的時(shí)候,小白的“裙子”臟了,我都會(huì)去拿點(diǎn)兒紙巾,擦去“裙子”的臟痕,它變得非常漂亮,我真是越來(lái)越喜歡它了。

      小白還有許多的功能呢!里面有一個(gè)音樂(lè)播放器,我偶爾會(huì)下載一些歌曲,仿佛給小白增添了幾件新衣裳。考試之前,我總要聽(tīng)上一兩首優(yōu)美的歌曲,放松一下緊張的心情。小白里面還有電影播放,我無(wú)聊時(shí),我都看一些有趣的電影,這樣就可以解悶了。里面還有錄音,我每天都會(huì)錄音,長(zhǎng)大后,我就可以細(xì)細(xì)的回味小時(shí)候的趣事了。小白里面還有一個(gè)電子書(shū),有許多書(shū)籍我都可以在電子書(shū)里找呢!小白真是無(wú)所不能呀!我愛(ài)你,小白!

      第五篇:電信-音樂(lè)播放器

      音樂(lè)播放器設(shè)計(jì)文檔

      在 android平臺(tái)上開(kāi)發(fā)音樂(lè)播放器是一個(gè)全新的挑戰(zhàn)。這次通過(guò) android QQ music 項(xiàng)目實(shí)戰(zhàn),總結(jié)出一些方法和經(jīng)驗(yàn),希望能夠?qū)σ苿?dòng)平臺(tái)的設(shè)計(jì)尤其是多媒體這塊提供一些有價(jià)值的參考和幫助。1.1 項(xiàng)目背景

      當(dāng)今社會(huì)的生活節(jié)奏越來(lái)越快,人們對(duì)手機(jī)的要求也越來(lái)越高,由于手機(jī)市場(chǎng)發(fā)展迅速,使得手機(jī)操作系統(tǒng)也出現(xiàn)了不同各類,現(xiàn)在的市場(chǎng)上主要有三個(gè)手機(jī)操作系統(tǒng),Windows mobile,symbian,以及谷歌的Android操作系統(tǒng),其中占有開(kāi)放源代碼優(yōu)勢(shì)的Android系統(tǒng)有最大的發(fā)展前景。那么能否在手機(jī)上擁有自己編寫(xiě)的個(gè)性音樂(lè)播放器呢?能的,谷歌Android系統(tǒng)就能做到。本文的音樂(lè)播放器就是基于谷歌Android手機(jī)平臺(tái)的播放器。

      Android:是谷歌于2007年公布的開(kāi)放式源代碼手機(jī)系統(tǒng),它的開(kāi)放性就優(yōu)于其它封閉式的手機(jī)系統(tǒng),因此,任何人都可能根據(jù)自己的喜好將手機(jī)系統(tǒng)中的所有功能重新編寫(xiě)。這使得越來(lái)越多的人關(guān)注這個(gè)操作系統(tǒng)。本次作品音樂(lè)播放器就是基于Android平臺(tái)的。

      隨著計(jì)算機(jī)的廣泛運(yùn)用,手機(jī)市場(chǎng)的迅速發(fā)展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。于是各種手機(jī)播放器也緊跟著發(fā)展起來(lái),但是很多播放器一味追求外觀花哨,功能龐大,對(duì)用戶的手機(jī)造成了很多資源浪費(fèi),比如CPU,內(nèi)存等的占用率過(guò)高,在用戶需要多任務(wù)操作時(shí),受到了不小的影響,帶來(lái)了許多不便,而對(duì)于大多數(shù)普通用戶,許多功能用不上,形同虛設(shè)。針對(duì)以上各種弊端,選擇了開(kāi)發(fā)多語(yǔ)種的音頻視頻播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶(如聽(tīng)歌,看電影)的需求,除了能播放常見(jiàn)格式的語(yǔ)音視頻文件,高級(jí)功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語(yǔ)言界面。要研究了各種市場(chǎng)上流行的手機(jī)播放器,了解它們各自的插件及編碼方式,還有各種播放器播放的特別格式文件,分析各種編碼的優(yōu)缺點(diǎn)以及各種播放器本身存在的缺陷和特點(diǎn),編寫(xiě)出功能實(shí)用,使用方便快捷的播放器。目前已經(jīng)實(shí)現(xiàn)的功能有能播放常見(jiàn)音頻文件的功能,如MP3,WAV,等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進(jìn),快退,音量調(diào)節(jié)等。播放模式也比較完善,有單曲,順序,循環(huán),隨機(jī)播放等模式。

      一、引入產(chǎn)品定義描述(Application

      Definition Statement)

      相信大多數(shù)設(shè)計(jì)師都有過(guò)這樣的經(jīng)歷:在產(chǎn)品設(shè)計(jì)過(guò)程中,設(shè)計(jì)師和產(chǎn)品經(jīng)理不斷 pk,各抒己見(jiàn),甚至鬧得臉紅

      耳赤、拍桌翻臉,最后項(xiàng)目總結(jié)時(shí)又因達(dá)不到“理想目標(biāo)“雙方深深自責(zé),紛紛表示”缺少交流“。彼此不斷 pk,交流

      絕對(duì)足夠,只是我們?nèi)鄙儆行贤ǖ墓ぞ?。如果能在早期建立共識(shí),口水仗爆發(fā)的頻率就會(huì)越少,真正花在產(chǎn)品上 的時(shí)間也就越多。這一次,我們決定更早地切入,在最開(kāi)始的產(chǎn)品規(guī)劃層面,引入“產(chǎn)品定義描述”(關(guān)于

      ap-plicationdefinition statement,請(qǐng)參考《iPhone Human Interface Guidelines》)。

      注意:

      ADS 的定義也是一個(gè)迭代的過(guò)程,外部環(huán)境的變化、后續(xù)過(guò)程產(chǎn)生的問(wèn)題,都可能對(duì)原 ADS 產(chǎn)生影響,需

      要重新評(píng)估、修正,甚至否定再來(lái),但無(wú)論如何,必須確保整個(gè)團(tuán)隊(duì)對(duì) ADS 有一個(gè)共同的認(rèn)識(shí)。

      二、細(xì)分場(chǎng)景,從場(chǎng)景推導(dǎo)需求,從需求推導(dǎo)設(shè)計(jì)

      從源頭的戰(zhàn)略層面上建立了統(tǒng)一的認(rèn)知,我們接下來(lái)開(kāi)展的工作就有根據(jù)了。既然核心是解決“移動(dòng)場(chǎng)景聽(tīng)歌“的問(wèn)

      題,我們必須首先弄清楚什么是”移動(dòng)場(chǎng)景“?移動(dòng)環(huán)境和 PC 環(huán)境差異甚大,碎片時(shí)間的使用更為突出。用戶一天

      是怎么活動(dòng)的呢?每次拿起手機(jī)聽(tīng)音樂(lè)都是什么時(shí)間?上班的公車上、走路、晚上睡覺(jué)前?在這些點(diǎn)上用戶都會(huì)做

      些什么?簡(jiǎn)單的腦暴可以羅列各個(gè)可能的使用場(chǎng)景,但還比較粗糙。場(chǎng)景的構(gòu)想需要建立在高度的認(rèn)知上,這時(shí)候

      用研的切入顯得相當(dāng)關(guān)鍵,用戶特征、喜好、使用習(xí)慣…對(duì)用戶越了解,場(chǎng)景就越能貼近真實(shí)、越能發(fā)現(xiàn)更多的細(xì)

      節(jié)。這些都為后續(xù)的設(shè)計(jì)決策提供了有力的依據(jù)

      客觀構(gòu)建的場(chǎng)景有很多有意思的發(fā)現(xiàn),比如用戶在播放本地歌曲時(shí),挑選第一首歌往往比較猶豫,但對(duì)后續(xù)播放的

      歌曲卻不太在意。從場(chǎng)景仔細(xì)分析和推敲,很容易就可以明確產(chǎn)品的需求,對(duì)應(yīng)上述的發(fā)現(xiàn),推導(dǎo)如下需求:為用

      戶提供“馬上聽(tīng)歌”按鈕引導(dǎo)用戶直接聽(tīng)歌。需求的推導(dǎo)因?yàn)橛杏醚械那腥?,避免了太多的個(gè)人情感因素。

      三、敏捷原型設(shè)計(jì),適應(yīng)與借鑒并行

      用研的輸出以及前面的 ADS 定義為功能篩選和設(shè)計(jì)取舍提供了強(qiáng)有力的決策依據(jù)。在需求框架大致決定的時(shí)候,我們接下來(lái)就進(jìn)行方案設(shè)計(jì)了。正所謂“一圖勝千言”,原型有時(shí)候會(huì)比面面俱到的文檔更直觀。不同的階段,我們

      會(huì)進(jìn)行不同精度的原型設(shè)計(jì):

      在原型迭代的過(guò)程中,需要注意 android平臺(tái)的 UI 尷尬。與其他平臺(tái)(iPhone、symbian、windows mobile)不同,an-droid 更加開(kāi)放,不同的廠商不同的 ROM 版本界面規(guī)范并不統(tǒng)一。如果簡(jiǎn)單地將其他平臺(tái)的設(shè)計(jì)規(guī)范移植過(guò)來(lái),產(chǎn)品體驗(yàn)可能會(huì)和整個(gè)系統(tǒng)“格格不入”。借鑒了 android平臺(tái)的一些優(yōu)秀 app(比如 twitter 和 new york times)的

      設(shè)計(jì)策略,我們決定“適應(yīng)與借鑒并行“:在大的基礎(chǔ)體驗(yàn)上,保證與系統(tǒng)體驗(yàn)一致,尊重平臺(tái)使用習(xí)慣;在細(xì)節(jié)體

      驗(yàn)上,盡量克服系統(tǒng)的操作困難,保證局部體驗(yàn)的流暢。

      四、視覺(jué)方案

      在整個(gè)設(shè)計(jì)過(guò)程中,我們嘗試了多套風(fēng)格方案,比如“夢(mèng)幻光影”、“清爽夏日”、“木質(zhì)桌面”“藍(lán)色海洋”等等,由于

      beta1 開(kāi)發(fā)時(shí)間有限,最后選擇了偏深綠色主色調(diào)的“夢(mèng)幻光影”作為默認(rèn)皮膚,這里奉上其他未曾謀面的方案,供 參考。

      4.1 主要界面模塊劃分

      視覺(jué)方案的第一步是對(duì)界面各模塊和控件進(jìn)行作出符合審美原理和需要的的合理劃分和尺寸設(shè)定,這里重點(diǎn)會(huì)落在

      正在播放界面和歌曲列表界面兩塊,雖然兩個(gè)界面功能和承載的信息都不相同,但是在造作上兩個(gè)界面跳轉(zhuǎn)和切換

      是緊密關(guān)聯(lián)的,在各模塊劃分和空間比例上兩個(gè)需要統(tǒng)籌安排,一方面考慮上下同樣尺寸的“標(biāo)題行”和底部“控制行

      / tab 行”一方面要考慮歌曲列表界面的列表選擇合適的行高和行數(shù)。在保證每一行歌曲信息能夠有足夠的空間顯示

      整個(gè)界

      從上圖區(qū)域劃分和比例可以看出,播放器界面,封面/歌手圖片的中心點(diǎn)在整個(gè)界面的高度是 296,相對(duì)于面的高 480,這一比例基本是處在 0.618:1 的黃金分隔點(diǎn)上。4.2 正在播放界面

      用戶使用音樂(lè)播放器,最大的關(guān)注點(diǎn)一般會(huì)落在正在播放/播放器界面上,這塊在視覺(jué)上是整個(gè)產(chǎn)品的核心區(qū)域,在很大程度上代表了整款軟件的品質(zhì)、品位和風(fēng)格信息表達(dá)。而專輯封面/歌手頭像又是正在播放界面的視覺(jué)中心,因此這塊在設(shè)計(jì)上花了比較重的筆墨,用細(xì)膩的光照效果與晶瑩剔透的質(zhì)感精心營(yíng)造了一種符合我們 QQ 音樂(lè)在手

      機(jī)移動(dòng)操作平臺(tái)上的氣質(zhì)的效果。

      4.3 系統(tǒng)菜單 icon

      菜單選項(xiàng) icon 是另外一個(gè)視覺(jué)信息傳達(dá)比較重要的地方,對(duì)整體風(fēng)格的形成起著重要作用,這里做了兩種效果的

      嘗試,一種 A 方案:是空心邊框形式,看起來(lái)彈出菜單很輕盈,一屏 6 個(gè)選項(xiàng)帶文字不會(huì)覺(jué)得擁擠,缺點(diǎn)是單個(gè)

      圖標(biāo)的輪廓有的地方不連貫,有可能會(huì)造成辨識(shí)度降低。另外最后選用的方案 B 是實(shí)心剪影的形式,這種表現(xiàn)方式

      整個(gè) icon 看起來(lái)很整體,比較飽滿,識(shí)別度較高,不過(guò)如果一屏圖標(biāo)過(guò)多的話可能會(huì)稍有擁擠的感覺(jué),但如果以

      縮小的方式處理,對(duì)于手指觸摸操作來(lái)說(shuō)是不合理的,這里 icon 作了圓角處理和鏤空實(shí)心均衡化處理,能在視覺(jué)

      感受上弱化一下可能會(huì)產(chǎn)生的擁擠感。

      4.4 出現(xiàn)“水波紋”的問(wèn)題

      色彩顯示效果上 Android 系統(tǒng)的手機(jī)由于硬件和技術(shù)上的限制和問(wèn)題,會(huì)在某些情況下產(chǎn)生令人抓狂的水波紋問(wèn)題,在嘗試的過(guò)程中大致總結(jié)了容易造成水波紋的漸變使用,如上圖左邊兩個(gè)圖塊:如果使用規(guī)則的徑向漸變,程序貼

      圖后極容易出現(xiàn)水波紋,另一種情況是如右邊的兩圖塊:漸變色差值過(guò)小,就是說(shuō)漸變特別的細(xì)膩不顯著的話也很

      容易在切圖程序貼圖后出現(xiàn)明顯的水波紋。所以后面在配色和設(shè)計(jì)過(guò)程中可以據(jù)此避免盡量這樣的情況出現(xiàn)。

      4.5 最終選用方案:

      五、后記

      (1)通過(guò)對(duì)Android手機(jī)平臺(tái)的音樂(lè)播放器軟件的開(kāi)發(fā),使我對(duì)Android音樂(lè)播放器系統(tǒng)的整體設(shè)計(jì)有一個(gè)深入的了解,對(duì)整個(gè)流程也會(huì)有一個(gè)清晰的認(rèn)識(shí)。開(kāi)發(fā)Android音樂(lè)播放器,要抓住開(kāi)發(fā)的核心部分,音樂(lè)播放器大體由播放主界面、播放列表、菜單、播放設(shè)置、文件瀏覽、歌曲搜索六大核心組成,只要掌握了這六部分的開(kāi)發(fā),音樂(lè)播放器就能初具規(guī)模。而其它的功能都是在這六個(gè)功能的基礎(chǔ)上去補(bǔ)充添加的,但是這是功能的確是必不可少的功能,否則就不能算是音樂(lè)播放器了。

      (2)音樂(lè)播放器系統(tǒng)實(shí)現(xiàn)了播放器的基本功能:播放,暫停、停止、上/下一首、音量調(diào)節(jié)、歌詞顯示、播放模式、歌曲搜索、文件瀏覽器、播放列表查詢等功能。運(yùn)用的系統(tǒng)平臺(tái)是現(xiàn)今最熱門(mén)的Android系統(tǒng),是一個(gè)開(kāi)源的基于Linux系統(tǒng)的手機(jī)平臺(tái)。是以Java語(yǔ)言編寫(xiě)+SQLite數(shù)據(jù)庫(kù)支持+SharePreference配置文件的組合方式進(jìn)行數(shù)據(jù)管理。實(shí)現(xiàn)了音樂(lè)播放器的系統(tǒng)編程。

      (3)本次程序設(shè)計(jì),對(duì)播放器的系統(tǒng)結(jié)構(gòu)框架做了精心的構(gòu)思與設(shè)計(jì),采用主要開(kāi)發(fā)工具是Eclipse3.5+Java語(yǔ)言的支持,Android Development Tool的插件,和Android SDK2.1版本的全面結(jié)合,才使整個(gè)音樂(lè)播放器系統(tǒng)得以實(shí)現(xiàn)。

      (4)總之,經(jīng)過(guò)幾個(gè)月的Android系統(tǒng)技術(shù)知識(shí)的學(xué)習(xí)和對(duì)音樂(lè)播放器的構(gòu)思與設(shè)計(jì),使我對(duì)Android系統(tǒng)有了一定的了解,讓我對(duì)Android系統(tǒng)上的開(kāi)發(fā)流程和開(kāi)發(fā)模式有了深入的了解,這對(duì)我以后的Android項(xiàng)目開(kāi)發(fā)有很大的幫助。參 考 書(shū) 籍

      《Java API文檔》

      《Android 系統(tǒng)原理及開(kāi)發(fā)要點(diǎn)詳解》 作者:韓超,梁泉 著 《Android SDK開(kāi)發(fā)范例大全》

      作者:郭宏志 著 《Android Google API開(kāi)發(fā)文檔》 作者:Google官方 《Android Application Development》 出版社: O’Reilly 《Java編程思想think of java》 作者:Bruce Eckel 《手機(jī)軟件研發(fā)培訓(xùn)教材》

      出版社:極地星空3G通信學(xué)院 參 考 文 獻(xiàn)

      [1] 張孝祥著. java就業(yè)培訓(xùn)教程[M].北京:清華大學(xué)出版社,2007.[2] 余志龍編著.Google Android SDK開(kāi)發(fā)范例大全[M].北京:人民郵電出版社,2009-7-1.[3] E2ECloud工作室著.深入淺出Google Android[M].北京:人民郵電出版社,2009-08-1.[4] 靳巖 姚尚朗著.Google Android開(kāi)發(fā)入門(mén)與實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2009-07-01.[5] 高昂著.支持動(dòng)態(tài)語(yǔ)言的Android平臺(tái)[M].北京:人民郵電出版社,2009-05-07.[6] eoe.Android開(kāi)發(fā)社區(qū).http://. 2010-04-10.[9] 高煥堂編.Android 應(yīng)用框架原理與程式設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2008-10-03 [10] 楊豐盛主編.Android 應(yīng)用開(kāi)發(fā)揭秘[M].西安:機(jī)械工業(yè)出版社,2010-01-25 [11] XML解析方式DOM、SAX之比較.http://wghjay.javaeye.com/blog/519955.2009-11-18.名詞術(shù)語(yǔ):

      JDK

      Java Development Kit

      Android 基于Linux操作系統(tǒng)的手機(jī)平臺(tái) SDK

      Android Software Development Kit ADT Android Development Tool Anroid開(kāi)發(fā)工具

      IDE Intergrate Design Environment

      集成開(kāi)發(fā)環(huán)境 ADB

      Android Debug Bridge 調(diào)試橋

      AVD

      Android Virtual Devices

      Android虛擬設(shè)備

      DDMS Dalvik Debug Monitor Service 調(diào)試監(jiān)視服務(wù) AIDL Android Interface Description Language Android接口描述語(yǔ)言 xmlns XML NamePace XML命名空間

      下載java音樂(lè)播放器源代碼(ChatClient)word格式文檔
      下載java音樂(lè)播放器源代碼(ChatClient).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        博餅小游戲java源代碼

        廈門(mén)中秋博餅程序?。↗AVA編寫(xiě)) /*博餅,這是一個(gè)Applet程序,要求:記錄已經(jīng)獲取的每種獎(jiǎng)品的數(shù)目,如果某種獎(jiǎng)品用完了,再博出的相應(yīng)點(diǎn)數(shù)不獲獎(jiǎng)。 游戲結(jié)束的條件是:狀元已經(jīng)產(chǎn)生,而且獎(jiǎng)......

        java書(shū)店管理系統(tǒng)源代碼

        Java 源代碼 public class loaduser { public String user; public String password; boolean b1; loaduser(String s1,String s2){ user=s1; password=s2; } void l......

        簡(jiǎn)易音樂(lè)播放器小結(jié)

        簡(jiǎn)易音樂(lè)播放器小結(jié) 06A13142 李長(zhǎng)波 其實(shí)我們一開(kāi)始是想做一個(gè)簡(jiǎn)易視頻播放器的,但后來(lái)限于目前能力有限,不得不放棄原有計(jì)劃,將設(shè)計(jì)改為簡(jiǎn)易音樂(lè)播放器。一開(kāi)始的視頻播放器......

        音樂(lè)播放器項(xiàng)目報(bào)告

        華東交通大學(xué)課程項(xiàng)目 學(xué) 院:軟件學(xué)院 ______ 課程名稱: Android應(yīng)用開(kāi)發(fā)___________ 項(xiàng)目名稱: ___ _音樂(lè)播放器________ 學(xué)生名字: ____ ________ 學(xué)生班級(jí): ____ ______ 授課......

        MFC音樂(lè)播放器(實(shí)驗(yàn)報(bào)告)

        音樂(lè)播放器大型實(shí)驗(yàn)報(bào)告 一、實(shí)驗(yàn)?zāi)康? 通過(guò)動(dòng)手制作基于VC++的音樂(lè)播放器,了解播放器的原理。并通過(guò)自己動(dòng)手,在windows播放器組件的基礎(chǔ)上,用自己的算法,去實(shí)現(xiàn)自己的界面和自......

        個(gè)人通訊錄管理系統(tǒng),java源代碼

        package cn.pab.manager; import java.util.List; import java.util.Scanner; import cn.pab.dao.PersonDao; import cn.pab.dao.TypeDao; import cn.pab.dao.UserDao; im......

        學(xué)生成績(jī)管理系統(tǒng) java源代碼

        package com.student.enty; //姓名學(xué)號(hào)語(yǔ)文數(shù)學(xué)英語(yǔ)public class Student { private String name; private int num; private double chi; private double mat; private dou......

        各種音樂(lè)播放器的比較

        音樂(lè)播放器的評(píng)測(cè) 現(xiàn)在播放器實(shí)在是多了點(diǎn),有的新手覺(jué)得眼花繚亂,不知道選什么,今天就來(lái)個(gè)點(diǎn)評(píng),給大家些參考。一、普通播放器1:Windows Media Player(系統(tǒng)自帶版本) 這個(gè)是非常常......