Как воспроизводить аудио с URL-адреса в Android?
Многим приложениям требуется функция добавления звуковой функции в свое приложение, и есть так много аудиофайлов, которые мы должны воспроизводить внутри нашего приложения. Если мы будем хранить так много аудиофайлов внутри нашего приложения, это увеличит размер приложения, и это может уменьшить пользовательскую базу из-за огромного размера приложения. Поэтому лучший способ решить эту проблему - хранить аудиофайлы в своей базе данных и получать к ним доступ по их уникальному 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.