Android 播放mp3文件

1,在res/raw中加入mp3文件

2,实现播放类


import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;
import android.util.Log;

import java.util.HashMap;
import java.util.Map;

public class UtilSound {
    public static SoundPool sp;
    public static Map<Integer, Integer> suondMap;
    public static Context context;

    public static int SOUND_DI = 1;
    public static int SIZE = SOUND_DI ;//音频数量

    //init sound pool
    public static void initSoundPool(Context context) {
        UtilSound.context = context;

        sp = new SoundPool (SIZE, AudioManager.STREAM_MUSIC, 0);
        suondMap = new HashMap<Integer, Integer>();
        //tips sounds
        suondMap.put(SOUND_GET_SUCCESS,sp.load(context, R.raw.di, SOUND_DI));
    }

    //play sound
    public static void play(int soundID) {
        if(context==null||sp==null){
            Log.e("gcy", "play failed!"+context+" SoundPool="+sp );
//            return;
        }
        try {
            AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
            float audioMaxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            float audioCurrentVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC);
            float volumnRatio = audioCurrentVolume / audioMaxVolume;
            //第一个参数soundID
            //第二个参数leftVolume为左侧音量值(范围= 0.0到1.0)
            //第三个参数rightVolume为右的音量值(范围= 0.0到1.0)
            //第四个参数priority 为流的优先级,值越大优先级高,影响当同时播放数量超出了最大支持数时SoundPool对该流的处理
            //第五个参数loop 为音频重复播放次数,0为值播放一次,-1为无限循环,其他值为播放loop+1次
            //第六个参数 rate为播放的速率,范围0.5-2.0(0.5为一半速率,1.0为正常速率,2.0为两倍速率)
            sp.play(soundID, volumnRatio, volumnRatio, 0, 0, 1f);//0.5-2.0 speed
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

3,初始化声音播放类,一般在onCreate中调用

UtilSound.initSoundPool (MainActivity.this);//初始化语音播放类

4,调用播放,初始化后可以多次调用

UtilSound.play(UtilSound.SOUND_DI);//播放 di

5,播放速度与音量等参数调节

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android播放MP3文件可以使用MediaPlayer类。以下是一个简单的示例代码: ```java MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource("path/to/mp3/file"); mediaPlayer.prepare(); mediaPlayer.start(); ``` 其中,`setDataSource()`方法设置要播放MP3文件的路径,`prepare()`方法准备MediaPlayer进行播放,`start()`方法开始播放。请注意,在使用MediaPlayer类时,必须处理它的异常。还可以设置监听器以处理播放完成等事件。 ### 回答2: 在Android播放MP3文件,可以使用MediaPlayer类实现。首先,需要将MP3文件放在res/raw目录中。然后,通过创建MediaPlayer对象来加载并播放MP3文件。 以下是实现的步骤: 1. 首先,在你的Android项目中,打开res目录,并创建一个名为raw的子目录。 2. 将MP3文件放入raw目录。如果没有raw目录,你可以手动创建。 3. 在你的MainActivity类中,导入MediaPlayer类: import android.media.MediaPlayer; 4. 在你想要播放MP3文件的位置创建一个MediaPlayer对象。例如,在onCreate方法中创建一个对象: MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.your_mp3_file_name); 请替换your_mp3_file_name为你实际的MP3文件名。 5. 调用MediaPlayer对象的start方法来开始播放MP3文件: mediaPlayer.start(); 6. 如果需要停止播放文件,可以调用MediaPlayer对象的stop方法: mediaPlayer.stop(); 7. 在Activity生命周期结束时,调用MediaPlayer对象的release方法来释放资源: mediaPlayer.release(); 完整的播放MP3文件的示例代码如下: import androidx.appcompat.app.AppCompatActivity; import android.media.MediaPlayer; import android.os.Bundle; public class MainActivity extends AppCompatActivity { MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mediaPlayer = MediaPlayer.create(this, R.raw.your_mp3_file_name); mediaPlayer.start(); } @Override protected void onDestroy() { super.onDestroy(); if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } } } 记得将上述代码中的your_mp3_file_name替换为你实际的MP3文件名。这样,你就可以在Android应用中播放MP3文件了。 ### 回答3: 要在Android设备上播放MP3音频文件,可以使用MediaPlayer类。下面是一个演示如何使用MediaPlayer播放MP3文件的简单代码示例: ```java import android.media.MediaPlayer; import android.os.Bundle; import android.os.Environment; import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; import java.io.IOException; public class MainActivity extends AppCompatActivity { private Button playButton; private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); playButton = findViewById(R.id.playButton); mediaPlayer = new MediaPlayer(); playButton.setOnClickListener(view -> { if(mediaPlayer.isPlaying()){ mediaPlayer.stop(); mediaPlayer.reset(); playButton.setText("播放"); } else { try { String mp3FilePath = Environment.getExternalStorageDirectory() + "/sample.mp3"; mediaPlayer.setDataSource(mp3FilePath); mediaPlayer.prepare(); mediaPlayer.start(); playButton.setText("停止"); } catch (IOException e) { e.printStackTrace(); } } }); } @Override protected void onDestroy() { super.onDestroy(); if (mediaPlayer != null) { mediaPlayer.release(); mediaPlayer = null; } } } ``` 上述代码中,通过按钮的点击事件处理程序,我们可以控制音乐播放器的播放和停止操作。需要确保设备上存储了名为"sample.mp3"的音频文件,并具有适当的权限访问该文件。此代码片段使用了MediaPlayer类的相关方法,如`setDataSource()`、`prepare()`、`start()`和`stop()`。 请注意,在使用MediaPlayer播放完毕后,应调用`release()`方法释放资源,避免内存泄漏。 此外,还需要在AndroidManifest.xml文件中添加适当的权限声明,以便访问设备上的音频文件: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 这样,您就可以在Android设备上使用上述代码示例来播放MP3音频文件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值