Как воспроизводить аудио с URL-адреса в Android?

Опубликовано: 30 Ноября, 2021

Многим приложениям требуется функция добавления звуковой функции в свое приложение, и есть так много аудиофайлов, которые мы должны воспроизводить внутри нашего приложения. Если мы будем хранить так много аудиофайлов внутри нашего приложения, это увеличит размер приложения, и это может уменьшить пользовательскую базу из-за огромного размера приложения. Поэтому лучший способ решить эту проблему - хранить аудиофайлы в своей базе данных и получать к ним доступ по их уникальному URL-адресу. В этой статье мы рассмотрим воспроизведение аудиофайла с URL-адреса в Android.

Что мы собираемся построить в этом приложении?

Мы будем создавать простое приложение, в котором мы будем отображать две кнопки для воспроизведения и паузы нашего звука. Мы будем загружать этот звук по URL-адресу. Ниже приведено видео, в котором мы увидим, что мы собираемся построить в этой статье. Теперь перейдем к реализации. Обратите внимание, что мы собираемся реализовать этот проект на языке Java.

Пошаговая реализация

Шаг 1. Создайте новый проект

Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать / запустить новый проект в Android Studio». Обратите внимание, что выберите Java в качестве языка программирования.

Шаг 2. Работа с файлом activity_main.xml

Перейдите в файл activity_main.xml и обратитесь к следующему коду. Ниже приведен код файла activity_main.xml.

XML

<? xml version = "1.0" encoding = "utf-8" ?>
< RelativeLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical"
tools:context = ".MainActivity" >
<!--Button for playing audio-->
< Button
android:id = "@+id/idBtnPlay"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_centerInParent = "true"
android:text = "Play Audio file"
android:textAllCaps = "false" />
<!--Button for pausing the audio-->
< Button
android:id = "@+id/idBtnPause"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_below = "@id/idBtnPlay"
android:layout_centerInParent = "true"
android:text = "Pause Audio"
android:textAllCaps = "false" />
</ RelativeLayout >

Шаг 3. Добавление разрешений к файлу AndroidManifest.xml

Поскольку мы воспроизводим звук с URL-адреса в android. Поэтому нам нужно будет добавить разрешения Интернета для загрузки URL. Добавьте ниже разрешения к файлу AndroidManifest.xml.

XML

<!-- Permissions of internet -->
< uses-permission android:name = "android.permission.INTERNET" />
< uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE" />

Шаг 4: Работа с файлом MainActivity.java

Перейдите в файл MainActivity.java и ознакомьтесь со следующим кодом. Ниже приведен код файла MainActivity.java. Комментарии добавляются внутри кода для более подробного понимания кода.

Ява

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
// creating a variable for
// button and media player
Button playBtn, pauseBtn;
MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initializing our buttons
playBtn = findViewById(R.id.idBtnPlay);
pauseBtn = findViewById(R.id.idBtnPause);
// setting on click listener for our play and pause buttons.
playBtn.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
// calling method to play audio.
playAudio();
}
});
pauseBtn.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
// checking the media player
// if the audio is playing or not.
if (mediaPlayer.isPlaying()) {
// pausing the media player if media player
// is playing we are calling below line to
// stop our media player.
mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
// below line is to display a message
// when media player is paused.
Toast.makeText(MainActivity. this , "Audio has been paused" , Toast.LENGTH_SHORT).show();
} else {
// this method is called when media
// player is not playing.
Toast.makeText(MainActivity. this , "Audio has not played" , Toast.LENGTH_SHORT).show();
}
}
});
}
private void playAudio() {
// initializing media player
mediaPlayer = new MediaPlayer();
// below line is use to set the audio
// stream type for our media player.
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// below line is use to set our
// url to our media player.
try {
mediaPlayer.setDataSource(audioUrl);
// below line is use to prepare
// and start our media player.
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
// below line is use to display a toast message.
Toast.makeText( this , "Audio started playing.." , Toast.LENGTH_SHORT).show();
}
}

После добавления кода запустите приложение и посмотрите результат работы приложения.

Выход:

Note: After clicking on the play button wait for some time as we are loading our audio file from the URL. So it will take a little bit of time to load our audio file. 

Хотите более динамичную и конкурентную среду для изучения основ Android?
Щелкните здесь, чтобы перейти к уникальному руководству, составленному нашими экспертами с целью мгновенно подготовить вашу отрасль!