MENU
カテゴリー
\気になるカテゴリーをクリック!/
こんにちは! 文系SEの焼き芋です!
アンドロイドアプリ開発で
『音声ファイルの再生方法』
の実装方法が分からない
という悩みを抱えていませんか?
そこで、今回は「簡単なアプリ」を作って基本的な使い方をご紹介します。
この記事はこんな人におすすめです!
・Androidアプリ開発をこれから始める方
以下の基本的な使い方が分かります。
作成するアプリの完成イメージは、以下の画面の通りです。
デモアプリの仕様は以下の通りです。
今回の開発環境は以下の通りです。
OS | Windows10 | |||
メモリ | 8GB | |||
android studio | Android Studio Bumblebee (2021.1.1) | |||
JDK | 1.8.0_172 | |||
プログラミング言語 | Java |
プロジェクト作成方法は、
以下の記事をご参考にして下さい!
それでは、プログラミングを以下の手順1~3を解説していきます!
動画ファイルを「res>raw」の下に格納します。
今回の例では以下のファイルを格納しました。
「birdsound.mp3」
「activity_main.xml」のプログラムソースコードは以下の通りです。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="42dp"
android:layout_marginEnd="301dp"
android:text="再生位置の調整"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/seekBar1"
/>
<Button
android:id="@+id/buttonPlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="220dp"
android:text="再生"
android:onClick="onclickPlay"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/buttonPause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="270dp"
android:text="一時停止"
android:onClick="onclickPause"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/buttonStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="320dp"
android:text="停止"
android:onClick="onclickStop"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="400dp"
android:layout_height="30dp"
android:layout_marginStart="2dp"
android:layout_marginTop="46dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="76dp"
app:layout_constraintBottom_toTopOf="@+id/seekBar2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonStop" />
<SeekBar
android:id="@+id/seekBar2"
android:layout_width="400dp"
android:layout_height="30dp"
android:layout_marginStart="2dp"
android:layout_marginTop="76dp"
android:layout_marginEnd="9dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/seekBar1" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="11dp"
android:layout_marginTop="377dp"
android:layout_marginEnd="330dp"
android:text="音量の調整"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView3"
android:layout_width="347dp"
android:layout_height="74dp"
android:layout_marginTop="60dp"
android:background="#FBD2D2"
android:gravity="center"
android:text="焼き芋ミュージック"
android:textColor="#FF5722"
android:textSize="34sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
「MainActivity.java」のプログラムソースコードは以下の通りです。
package com.yakiimosan.demoplayaudio;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.SeekBar;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
MediaPlayer mplayer;
AudioManager audioManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mplayer = MediaPlayer.create(this,R.raw.birdsound);
audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
SeekBar volumeController = (SeekBar) findViewById(R.id.seekBar1);
volumeController.setMax(maxVolume);
volumeController.setProgress(curVolume);
volumeController.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,i,0);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
SeekBar scrubber = (SeekBar)findViewById(R.id.seekBar2);
scrubber.setMax(mplayer.getDuration());
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
scrubber.setProgress(mplayer.getCurrentPosition());
}
},0,100);
scrubber.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
mplayer.seekTo(i);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
public void onclickPlay(View view){
mplayer.start();
}
public void onclickPause(View view){
mplayer.pause();
}
public void onclickStop(View view){
mplayer.pause();
}
}
今回の記事では
アンドロイドアプリ開発で『音声ファイルの再生方法』について解説しました。
以下の基本的な使い方
「アンドロイドアプリ開発で『音声ファイルの再生方法』」
の実装イメージは分かったのではないでしょうか?
公式のandroidアプリ開発ユーザーガイドはコチラから参照できます!
開発時のご参考にどうぞ
以上、最後まで読んで頂きありがとうございました!
コメント