android播放音频用法示例

本文概述

我们可以借助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) 设置此播放器的音量。

活动类

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

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文件将如下所示:

<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>

活动类

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

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


输出:

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?