Android Studio 做一个 MP3 播放器

这篇具有很好参考价值的文章主要介绍了Android Studio 做一个 MP3 播放器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于 Android Studio 做一个 MP3 播放器:

  1. Android Studio 本身提供了多个音频播放器组件,可以通过这些组件来实现音频播放功能,其中包括 MediaPlayer、SoundPool 和 ExoPlayer 等。官方推荐我们使用ExoPlayer因为功能更强大,但这里用MediaPlayer因为编写更简单。

  2. 在使用 MediaPlayer 实现 MP3 播放器时,需要注意以下几点:

    • 在使用 MediaPlayer 之前,需要申请 “android.permission.READ_EXTERNAL_STORAGE” 权限,以读取本地储存的 MP3 文件。

    • 在代码中,需要实例化一个 MediaPlayer 对象,并设置其数据源、音频焦点、循环播放等属性。

    • 然后,通过调用 MediaPlayer 对象的 start() 方法,就可以开启播放功能。

  3. 这里提供一些关于 MediaPlayer 的资源链接:

    • 官方文档:https://developer.android.com/reference/android/media/MediaPlayer
    • 实现 MP3 播放器的教程:https://www.androidhive.info/2012/03/android-building-audio-player-tutorial/
    • GitHub 上的相关代码:https://github.com/DeweyReed/android_media_player

开发一个基本的 MP3 播放器需要以下步骤:

1.创建一个新的 Android Studio 项目

2.在 layout 文件夹中创建 UI 布局,包括播放/暂停按钮、进度条和音乐信息

3.在 drawable 文件夹中添加播放/暂停图标

4.导入 jaudiotagger 库以读取 MP3 文件的元数据

5.使用 MediaPlayer 类实现 MP3 文件的播放与控制

下面是一个简单的代码示例来实现这些步骤:

1.创建一个新的 Android Studio 项目

在 Android Studio 中,选择 File -> New -> New Project。在弹出窗口中,输入应用名称、包名和项目位置等信息创建新项目。

2.创建 UI 布局

在 res/layout 文件夹中创建一个名为 activity_main.xml 的布局文件。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/song_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Song Title"
        android:textAppearance="?android:attr/textAppearanceLarge"/>

    <TextView
        android:id="@+id/song_artist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Song Artist"
        android:layout_below="@id/song_title"
        android:textAppearance="?android:attr/textAppearanceMedium"/>

    <ImageView
        android:id="@+id/song_album_art"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/song_artist"
        android:src="@drawable/default_album_art"
        android:scaleType="fitCenter"/>

    <SeekBar
        android:id="@+id/seek_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/song_album_art"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/seek_bar"
        android:orientation="horizontal">

        <ImageButton
            android:id="@+id/play_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/play_button"/>

        <ImageButton
            android:id="@+id/pause_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/pause_button"
            android:visibility="gone"/>
    </LinearLayout>

</RelativeLayout>

该布局中包括音乐标题、艺术家、专辑封面、进度条和播放/暂停按钮。

3.导入播放/暂停图标

在 res/drawable 文件夹中添加两个名为 play_button.png 和 pause_button.png 的图标。您可以在网上搜索并下载这些图标,然后将它们拖放到 Android Studio 项目中。

4.导入 jaudiotagger 库

在项目的 build.gradle 文件中添加以下依赖项:

dependencies {
    implementation 'org.jaudiotagger:jaudiotagger:2.0.4'
}

这个库可以用于读取 MP3 文件的元数据,例如标题、艺术家和专辑信息。

5.使用 MediaPlayer 类实现 MP3 文件的播放和控制

在 MainActivity.java 文件中添加以下代码:

public class MainActivity extends AppCompatActivity {

    private MediaPlayer mediaPlayer;
    private ImageButton playButton, pauseButton;
    private boolean isPlaying;
    private TextView songTitle, songArtist;
    private ImageView albumArt;
    private SeekBar seekBar;
    private Handler mHandler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        songTitle = findViewById(R.id.song_title);
        songArtist = findViewById(R.id.song_artist);
        albumArt = findViewById(R.id.song_album_art);
        seekBar = findViewById(R.id.seek_bar);
        playButton = findViewById(R.id.play_button);
        pauseButton = findViewById(R.id.pause_button);

        // Load the audio file from the asset folder into the MediaPlayer
        AssetFileDescriptor fileDescriptor = null;
        try {
            fileDescriptor = getAssets().openFd("sample_music.mp3");
            mediaPlayer = new MediaPlayer();
            mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getLength());
        } catch (IOException e) {
            e.printStackTrace();
        }

        // Initialize the MediaPlayer and UI elements
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                int duration = mp.getDuration();
                seekBar.setMax(duration);
                songTitle.setText(mp.getMetadata("title"));
                songArtist.setText(mp.getMetadata("artist"));
                albumArt.setImageBitmap(mp.getMetadata("album art"));
                playButton.setVisibility(View.VISIBLE);
                pauseButton.setVisibility(View.GONE);
                isPlaying = false;
            }
        });

        // Update the seek bar progress as the audio is playing
        mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                playButton.setVisibility(View.VISIBLE);
                pauseButton.setVisibility(View.GONE);
                isPlaying = false;
            }
        });

        // Start the MediaPlayer when the play button is clicked
        playButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mediaPlayer != null && !isPlaying) {
                    mediaPlayer.start();
                    mHandler.postDelayed(updateSeekBar, 100);
                    playButton.setVisibility(View.GONE);
                    pauseButton.setVisibility(View.VISIBLE);
                    isPlaying = true;
                }
            }
        });

        // Pause the MediaPlayer when the pause button is clicked
        pauseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mediaPlayer != null && isPlaying) {
                    mediaPlayer.pause();
                    mHandler.removeCallbacks(updateSeekBar);
                    pauseButton.setVisibility(View.GONE);
                    playButton.setVisibility(View.VISIBLE);
                    isPlaying = false;
                }
            }
        });

    }

    // Update the seek bar progress every second
    private Runnable updateSeekBar = new Runnable() {
        @Override
        public void run() {
            int currentPosition = mediaPlayer.getCurrentPosition();
            seekBar.setProgress(currentPosition);
            mHandler.postDelayed(this, 1000);
        }
    };

    // Release the MediaPlayer when the activity is destroyed
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer != null) {
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }

}

该代码中加载了一个名为 sample_music.mp3 的 MP3 文件并将其作为 MediaPlayer 的数据源。在 MediaPlayer 准备好播放文件时,将更新 UI 元素,例如标题、艺术家、专辑封面和时长。另外,为了使播放和暂停按钮正常工作,我们需要检查 MediaPlayer 是否正在播放。

MP3 播放器的基本功能已经实现了。当您点击播放按钮时,音乐会开始播放,并且进度条会随着音乐进度而更新。同样,当您点击暂停按钮时,音乐会暂停。您可以根据自己的需要修改 UI 和播放器的一些设置。文章来源地址https://www.toymoban.com/news/detail-761322.html

到了这里,关于Android Studio 做一个 MP3 播放器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Studio 实现音乐播放器

    🍅 文章末尾有获取完整项目源码方式 🍅         Android初学者开发第一个完整的实例项目应该就属《音乐播放器》了,项目包含SQLlit数据库的使用、listview、Fragment、等。话不多说先上成品: Android Studio 音乐播放器 图片效果展示: 1.启动页效果 2.登录页效果 3.注册页效果

    2024年02月06日
    浏览(49)
  • Mini MP3 Player播放器简介与STC12例程

    The DFPlayer Mini MP3 Player For Arduino is a small and low price MP3 module with an simplified output directly to the speaker. The module can be used as a stand alone module with attached battery, speaker and push buttons or used in combination with an Arduino UNO or any other with RX/TX capabilities. 简介 DFPlayer迷你MP3播放器Arduino是一个小而便

    2024年02月08日
    浏览(80)
  • AI智能语音识别模块(二)——基于Arduino的语音控制MP3播放器

    在前面一篇文章里我们对AI智能语音识别模块进行了介绍,并对离线语音模组下载固件的过程进行了一个简单描述,不知道大家还记不记得,这篇文章也是鸽了好久,,本文将用这个语音控制模块结合前面介绍的DFPlayer Mini MP3模块来做一个有趣的应用,在上一期文章中,我们只

    2024年02月03日
    浏览(58)
  • Android Studio初学者实例:仿网易音乐播放器

    本期带来的是以Service为主要的知识点的网易音乐播放器 看一下效果图  首先项目准备: 在res下新建raw文件夹,并在文件夹中添加喜爱的mp3音乐  OK,第一步,先写一个背景文件,在res/drawable文件夹中新建xml文件: btn_bg_selector.xml  编写主界面代码activity_main.xml 编写MusicServic

    2024年02月05日
    浏览(52)
  • 零基础用Android Studio实现简单的本地视频播放器

    本文将讲解如何使用Android视频播放器VideoView组件来播放本地视频和网络视频,实现起来还是比较简单的。VideoView组件的作用与ImageView类似,只是ImageView用于显示图片,VideoView用于播放视频。 (本文章的代码参考: https://www.jb51.net/article/122051.htm) 实现效果: 用Android Studio做的

    2024年02月02日
    浏览(68)
  • Android Studio初学者实例:音乐播放器与Service学习

    本次一个案例实现的一个简单的音乐播放器 用到的知识点最主要的几点是:Service、handler(实现音乐播放的进度条更新与图片旋转)以及用于播放音频的MediaPlayer 看一下案例效果:  由于Service是Android的四大组件之一,Activity、Service等等一个重要知识点就是生命周期的问题,

    2024年02月03日
    浏览(48)
  • STM32F407使用Helix库软解MP3并通过DAC输出,最精简的STM32+SD卡实现MP3播放器

    只用STM32单片机+SD卡+耳机插座,实现播放MP3播放器! 看过很多STM32软解MP3的方案,即不通过类似VS1053之类的解码器芯片,直接用STM32和软件库解码MP3文件,通常使用了labmad或者Helix解码库实现,Helix相对labmad占用的RAM更少。但是大多数参考的方案还是用了外接IIS接口WM98xx之类的

    2024年02月12日
    浏览(57)
  • MP4转AVI转AMV教程:教你把B站视频导入你的MP3MP4随身听播放器

    学校不给带手机?去到学校就不能看视频了?我该怎么办? 别慌!UP主教你如何把你喜欢的视频导入到自己的随身听上! 前言:想必很多人都买过或者手上都有MP3/MP4播放器,在学校查手机变态严的中学时代,这个或许是唯一可以替代手机的慰藉了吧……每天晚上听着歌度过

    2023年04月25日
    浏览(44)
  • Android 音乐播放器

    ◼ 音乐播放器 . ◼ 要求 : Activity 编程、 ListView 编程、 SeekBar 编程、 ExoPlayer 编程( 播放 、 暂停 、 停止 、 上一首 、 下一首 ),音乐文件放在 assets/music 目录下,界面自拟. ◼ 期望最终效果: ◼ 分别对应 activity_music_list.xml 、 activity_my_music_player.xml 的视图. ◼ 点击列表任

    2024年02月03日
    浏览(58)
  • Android 播放mp3文件

    1,在res/raw中加入mp3文件 2,实现播放类 3,初始化声音播放类,一般在onCreate中调用 4,调用播放,初始化后可以多次调用 5,播放速度与音量等参数调节

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包