欧美综合天天夜夜久久|精品亚洲一区二区不卡|亚川色精品一区二区三区|国产做无码视频在线观看|中文国产成人精品久久无码|国产高清精品福利私拍国产|国产精品自在线拍国产手机版|亚洲国产日韩一区无码—夜夜嗨

音樂(lè)播放器微信小程序開發(fā)源碼(基于微信小程序的音樂(lè)播放器設(shè)計(jì)和畢業(yè)論文)

小程序開發(fā) 4441
今天給各位分享音樂(lè)播放器微信小程序開發(fā)源碼的知識(shí),其中也會(huì)對(duì)基于微信小程序的音樂(lè)播放器設(shè)計(jì)和畢業(yè)論文進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開始吧!Github上收集了70個(gè)微信小程序源碼 1:仿豆瓣電影微信小程序 2:微信小程序移動(dòng)端商城 3:Gank微信小程序 4:微信小程序高仿QQ應(yīng)用 5:微信中的知乎 6:實(shí)現(xiàn)一個(gè)移動(dòng)端小商城

今天給各位分享音樂(lè)播放器微信小程序開發(fā)源碼的知識(shí),其中也會(huì)對(duì)基于微信小程序的音樂(lè)播放器設(shè)計(jì)和畢業(yè)論文進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開始吧!

Github上收集了70個(gè)微信小程序源碼

1:仿豆瓣電影微信小程序

2:微信小程序移動(dòng)端商城

3:Gank微信小程序

4:微信小程序高仿QQ應(yīng)用

5:微信中的知乎

6:實(shí)現(xiàn)一個(gè)移動(dòng)端小商城

7:微信小程序demo

8: 跑步微信小程序Demo

9:簡(jiǎn)單的v2ex微信小程序

10:騰訊云微信小程序

11:微信小程序-微票

12:微信小程序demo 仿手機(jī)淘寶

13:一個(gè)為微信小程序開發(fā)準(zhǔn)備的基礎(chǔ)骨架

14:巴爺微信商城的簡(jiǎn)單版本

15:微信小程序 - 電影推薦

16:微信小程序-知乎日?qǐng)?bào)

17:微信小程序: 音樂(lè)播放器

18:使用微信小程序?qū)崿F(xiàn)分答這款A(yù)PP的基礎(chǔ)功能

19:微信小程序開發(fā)demo-地圖定位

:20:微信小程序 - 豆瓣電影

21:wepy仿微信聊天界面

22:仿 「ONE · 一個(gè)」 的微信小程序

23:微信小程序集成Redux實(shí)現(xiàn)的Todo list

24: 基于Zhihu Live數(shù)據(jù)的微信小程序

25:微信小程序之小熊の日記

26:仿網(wǎng)易云音樂(lè)APP的微信小程序

27:微信小程序的Flex布局demo

28:番茄時(shí)鐘微信小程序版

29:Wafer 服務(wù)端 Demo

30:微信小程序版聊天室

31:微信小程序版簡(jiǎn)易計(jì)算器,適合入門練手

32:微信小程序示例一筆到底

33:基于面包旅行 API 制作的微信小程序示例

34:新聞閱讀器

35:一個(gè)簡(jiǎn)單的微信小程序購(gòu)物車DEMO

36:微信小程序-公眾號(hào)熱門文章信息流

37:通過(guò)Node.js實(shí)現(xiàn)的妹子照片爬蟲微信小程序

38:從FlexLayout布局開始學(xué)習(xí)微信小程序

39:HiApp 微信小程序版

40:微信小程序的簡(jiǎn)單嘗試

41:集美大學(xué)圖書館的便捷工具

42:微信小程序版妹紙圖

43:V2ex 微信小程序版

44:微信小程序仿百思不得姐

45:微信小程序音樂(lè)播放器應(yīng)用

46:醫(yī)藥網(wǎng)原生APP的微信小程序DEMO

47:微信小程序跟讀

48:微信小程序瀑布流布局模式

49:微信小程序HotApp云筆記

50:小程序模仿——網(wǎng)易云音樂(lè)

51:微信小程序商城demo

52:微信小程序版的掃雷

53:專注管理時(shí)間的微信小程序

54:微信小程序版干貨集中營(yíng)

55:英雄聯(lián)盟(LOL)戰(zhàn)績(jī)查詢

56:微信小程序首字母排序選擇表

57:微信小程序版豆瓣電影

58:簡(jiǎn)單的實(shí)現(xiàn)了1024的游戲規(guī)則

59:微信小程序試玩

60:微信小程序逗樂(lè)

61:一步步開發(fā)微信小程序

62:一個(gè) meteor 的 React todo list 例子

63:微信小程序健康菜譜

64: jspapa微信小程序版本

65:微信小程序版的CNodeJs中文社區(qū)

66:LeanCloud 的微信小程序用戶登陸Demo

67: 微笑話微信小程序

68:微信小程序開發(fā)的App

69:體育新聞微信小程序

70:基于Labrador和mobx構(gòu)建的小程序開發(fā)demo

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

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.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="/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一開始為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)聽事件

void listener(){

//開始

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("你確定要離開嗎?")

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

}

}

}

微信小程序音頻播放之音樂(lè)播放器

使用微信小程序?qū)崿F(xiàn)一個(gè)簡(jiǎn)易的音樂(lè)播放器.

Github地址

雖然界面很簡(jiǎn)單,但是一個(gè)音頻播放器該有的功能大部分都有了(沒有歌詞顯示功能).

主要實(shí)現(xiàn)的功能有:

1.實(shí)現(xiàn)音頻播放,暫停;

2.實(shí)現(xiàn)拖拽進(jìn)度條,快進(jìn)音頻進(jìn)度;

3.實(shí)現(xiàn)上一首,下一首,列表循環(huán)播放;

4.實(shí)現(xiàn)關(guān)閉小程序,也可在后臺(tái)播放,正式版需要通過(guò)審核,開發(fā)版本可正常測(cè)試;

一丶index.js

二丶index.wxml

三丶index.wxss

四丶要實(shí)現(xiàn)關(guān)閉小程序后,依然后臺(tái)播放,微信頂部懸浮展示,需要再app.json配置requiredBackgroundModes屬性

附上官方相關(guān)api鏈接:

BackgroundAudioManager.html

wx.getBackgroundAudioManager()

slider組件

求一個(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)聽器。

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("打開");

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("播放控制");

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("打開")) {

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

// fd.setDirectory(currentDirectory);

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

肆方茉莉

62位粉絲

6樓

fd.setVisible(true);

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

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

return;

}

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

// 同時(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)

// 如果存在視覺部件,則該部件應(yīng)該拆除(為了一致起見,我們對(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;

}

}

} }

音樂(lè)播放器微信小程序開發(fā)源碼的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于基于微信小程序的音樂(lè)播放器設(shè)計(jì)和畢業(yè)論文、音樂(lè)播放器微信小程序開發(fā)源碼的信息別忘了在本站進(jìn)行查找喔。

掃碼二維碼