• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android MediaPlayer 音乐播放

Android MediaPlayer 音乐播放

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了androidmediaplayer,mediaplayerclassic,mobilemediaplayer,mediaplayer.create,widowsmediaplayer等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android MediaPlayer 音乐播放


主要使用

android.media.MediaPlayer;

android.widget.SeekBar;

 

 

<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/Layout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

    <listview android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:drawselectorontop="false">

    <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_name">
    
      <seekbar android:paddingleft="10dip" android:paddingright="10dip" android:layout_gravity="bottom" android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content">

    <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"><button android:id="@+id/last" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/last"></button><button android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/stop"></button><button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/start"></button><button android:id="@+id/pause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="190px" android:layout_y="70px" android:background="@drawable/pause" android:visibility="gone"></button><button android:id="@+id/next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/next"></button>
    </linearlayout>

</seekbar></textview></listview></linearlayout>

package com.tt;

import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;

public class viewHolder {

	public static Button start;
	public static Button stop;
	public static Button pause;
	public static Button next;
	public static Button last;
	
	public static TextView tv_name;
	public static SeekBar seekBar;
}


 

 

 

package com.tt;

import java.io.File; 
import java.io.FilenameFilter;

public class MusicFilter implements FilenameFilter{

	@Override
	public boolean accept(File dir, String filename) {
		// TODO Auto-generated method stub
		return (filename.endsWith(".mp3"));
	}

	 
}
package com.tt;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class musicActivity extends ListActivity {
	// 播放对象
	private MediaPlayer myMediaPlayer;
	// 播放列表
	private List myMusicList = new ArrayList();
	// 当前播放歌曲的索引
	private int currentListItem = 0;
	// 音乐的路径
	private static final String MUSIC_PATH = new String("/sdcard/");

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		myMediaPlayer = new MediaPlayer();

		findView();
		musicList();
		listener();
	}

	// 绑定音乐
	void musicList() {
		File home = new File(MUSIC_PATH);
		if (home.listFiles(new MusicFilter()).length > 0) {
			for (File file : home.listFiles(new MusicFilter())) {
				myMusicList.add(file.getName());
			}
			ArrayAdapter musicList = new ArrayAdapter(
					musicActivity.this, R.layout.musicitme, myMusicList);
			setListAdapter(musicList);
		}
	}

	// 获取按钮
	void findView() {
		viewHolder.start = (Button) findViewById(R.id.start);
		viewHolder.stop = (Button) findViewById(R.id.stop);
		viewHolder.next = (Button) findViewById(R.id.next);
		viewHolder.pause = (Button) findViewById(R.id.pause);
		viewHolder.last = (Button) findViewById(R.id.last);

		viewHolder.tv_name = (TextView) findViewById(R.id.tv_name);
		viewHolder.seekBar = (SeekBar) findViewById(R.id.seekBar1);
	}

	boolean ispause = false;

	Handler handler = new Handler() {

	};
	Runnable runnable = new Runnable() {

		@Override
		public void run() {
			// TODO Auto-generated method stub
			if (myMediaPlayer.isPlaying()) {
				viewHolder.seekBar.setProgress(myMediaPlayer
						.getCurrentPosition());
			}
			handler.postDelayed(runnable, 500);
		}
	};

	// 监听事件
	void listener() {
		// 停止
		viewHolder.stop.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				try {
					if (myMediaPlayer.isPlaying()) {
						myMediaPlayer.stop();
					}
				} catch (IllegalStateException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				viewHolder.start.setBackgroundDrawable(getResources()
						.getDrawable(R.drawable.start));
				handler.removeCallbacks(runnable);
			}
		});

		// 开始
		viewHolder.start.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				try {
					if (null != myMediaPlayer && myMediaPlayer.isPlaying()) {
						ispause = true;
						myMediaPlayer.pause();
						v.setBackgroundDrawable(getResources().getDrawable(
								R.drawable.start));
					} else {
						if (!ispause) {
							playMusic(MUSIC_PATH
									+ myMusicList.get(currentListItem));
						} else {
							myMediaPlayer.start();
						}
						ispause = false;
						v.setBackgroundDrawable(getResources().getDrawable(
								R.drawable.pause));
					}

				} catch (IllegalStateException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		});
		// 下一首
		viewHolder.next.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				nextMusic();
			}
		});
		// 暂停
		viewHolder.pause.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (myMediaPlayer.isPlaying()) {
					myMediaPlayer.pause();
				} else {
					myMediaPlayer.start();
				}
			}
		});
		// 上一首
		viewHolder.last.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				lastMusic();
			}
		});

	}
	
	// 下一首
		void nextMusic() {
			if (++currentListItem >= myMusicList.size()) {
				currentListItem = 0;
			} else {
				playMusic(MUSIC_PATH + myMusicList.get(currentListItem));
			}
		}

		// 上一首
		void lastMusic() {
			if (currentListItem != 0) {
				if (--currentListItem < 0) {
					currentListItem = myMusi



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • android MediaPlayer 错误代码(error code)总结 转载,androidmediaplayer
  • Android MediaPlayer 音乐播放

相关文章

  • 2017-05-26golang错误处理之error
  • 2017-05-222.5.7 Toast(吐司)的基本使用
  • 2017-05-26H5调用Android播放视频,h5调用android
  • 2017-05-26nginx rewrite常用示例
  • 2017-05-26Android 手机卫士11--窗体弹出PopupWindow,11--popupwindow
  • 2017-05-26Android Studio项目提交到GitHub,androidgithub
  • 2017-05-26关于Android滑动冲突的解决方法(二)
  • 2017-05-26JRebel for Android 1.0发布!,jrebelandroid
  • 2017-05-26Android学习笔记-TextView(文本框)(二),android-textview
  • 2017-05-26我的android学习经历6,android学习经历6

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 安卓第十六天笔记-音频与视频播放,安卓第视频播放
    • 解决关于 在android studio 出现的 DELETE_FAILED_INTERNAL_ERROR Error while Installing APK 问题,whileinstallingapk
    • 开发 Material Design+RxJava+Retrofit+MVP App 参考资料,rxjavaretrofit
    • androidStudio通过svn进行版本控制,androidstudiosvn
    • [Android]数据篇,android数据
    • 实现在矩形框中输入文字,可以显示剩余字数的功能,矩形字数
    • Android Studio 错误解决办法
    • listview下拉刷新和上拉加载更多的多种实现方案,listview下拉
    • Activity的生命周期,Activity生命周期
    • Android--数据库数据显示至屏幕

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有