Android Media Player 示例

2025年3月17日 | 阅读 3 分钟

我们可以通过 MediaPlayer 类 在 Android 中播放和控制音频文件。

在这里,我们将看到一个播放音频文件的简单示例。下一页,我们将看到控制音频播放(如开始、停止、暂停等)的示例。

MediaPlayer 类

android.media.MediaPlayer 类用于控制音频或视频文件。

MediaPlayer 类的方法

MediaPlayer 类有很多方法。其中一些如下:

方法描述
public void setDataSource(String path)设置要使用的数据源(文件路径或 http url)。
public void prepare()同步准备播放器进行播放。
public void start()它启动或恢复播放。
public void stop()它停止播放。
public void pause()它暂停播放。
public boolean isPlaying()检查媒体播放器是否正在播放。
public void seekTo(int millis)以毫秒为单位跳转到指定时间。
public void setLooping(boolean looping)设置播放器为循环播放或非循环播放。
public boolean isLooping()检查播放器是循环播放还是非循环播放。
public void selectTrack(int index)为指定索引选择一个音轨。
public int getCurrentPosition()返回当前的播放位置。
public int getDuration()返回文件的时长。
public void setVolume(float leftVolume,float rightVolume)设置此播放器的音量。

Activity 类

让我们来编写播放音频文件的代码。在这里,我们将播放位于 sdcard/Music 目录下的 maine.mp3 文件。

文件:MainActivity.java
package com.example.audiomediaplayer1;

import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		MediaPlayer mp=new MediaPlayer();
		try{
			mp.setDataSource("/sdcard/Music/maine.mp3");//Write your location here
			mp.prepare();
			mp.start();
			
		}catch(Exception e){e.printStackTrace();}
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}


您需要将应用程序运行在真实设备上进行测试。


Android MediaPlayer 控制音频的示例

让我们看一个简单的示例来开始、停止和暂停音频播放。

activity_main.xml

从调色板拖动三个按钮来开始、停止和暂停音频播放。现在 xml 文件将如下所示:

文件:MainActivity.java
<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="30dp"
        android:text="Audio Controller" />

    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="48dp"
        android:text="start" />

    <Button
        android:id="@+id/button2"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/button1"
        android:layout_toRightOf="@+id/button1"
        android:text="pause" />

    <Button
        android:id="@+id/button3"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/button2"
        android:layout_toRightOf="@+id/button2"
        android:text="stop" />

</RelativeLayout>

Activity 类

让我们编写代码来启动、暂停和停止音频播放器。

文件:MainActivity.java
package com.example.audioplay;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	Button start,pause,stop;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		start=(Button)findViewById(R.id.button1);
		pause=(Button)findViewById(R.id.button2);
		stop=(Button)findViewById(R.id.button3);
		//creating media player
		final MediaPlayer mp=new MediaPlayer();
		try{
                //you can change the path, here path is external directory(e.g. sdcard) /Music/maine.mp3
		mp.setDataSource(Environment.getExternalStorageDirectory().getPath()+"/Music/maine.mp3");
		
		mp.prepare();
		}catch(Exception e){e.printStackTrace();}
		
		start.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				mp.start();
			}
		});
		pause.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				mp.pause();
			}
		});
		stop.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				mp.stop();
			}
		});
	}
}


输出

android audio control example output 1