[Android] 簡単なMediaPlayerで音楽を再生する

MediaPlayer()を使って簡単な音楽再生アプリが作れます。Audioを扱うものとしては他にはSoundPoolやAudioTrackがあります。
 
mediaplyer a01 - [Android] 簡単なMediaPlayerで音楽を再生する

Android Studio 3.0.1
Android 8.1.0

 



MediaPlayer

 
MediaPlayerの特徴としては、呼び出してから再生まである程度時間がかかります。ゲームで言うとBGMを流しっぱなしには向きますが、爆発音を出したい時はタイミングが合わないかもしれません。
 
ゲームでの爆発音などはSoundPoolが使えます。更に、時間遅延が無いのはAudioTrackです。それぞれ一長一短がありますので用途に合わせた使い方が必要です。
 
MediaPlayerでの音楽ファイルはassetsあるいはrawに置きます。
assetsとrawの違いは、

  • assetsフォルダー分けができる
    • たくさんファイルがあるケースではassetsが便利
  • raw:ベタにただファイルを入れる配置
     
 

assetsの設定

 
mp3ファイルを入れるため「assets」フォルダーを作ります。appを選択した状態で
「New」->「Folder」->「assets folder」からフォルダを作成して、そこにmp3ファイルを入れます。
 
audioplayer 1 300x175 - [Android] 簡単なMediaPlayerで音楽を再生する

あるいは直接フォルダーをmainの下に作ることでもできます。
..\app\src\main\assets
手順としては

  1. assetsをオープンして音楽素材を取得
  2. MediaPlayerのインスタンスを生成して
  3. 音楽素材を設定
  4. 準備ができるまで待ち
  5. 再生を始める
     

 

音量を調整する場合、アプリでボリュームを作成することもできますが、もともとある音量調整ボタンでユーザーが好みで設定できる方が無駄がなく、ユーザーにとっても便利です。そこで setVolumeControlStream を使います。

 
これを設定しないと、ボリュームでコントロールされるのは(通知音と着信音)となります。

 

サンプルコード

 
まとめるとこうなります
MainActivity.java

 
レイアウト
activity_main.xml

 
リソース
strings.xml

 
BGMとして繰り返し再生させる場合は、release()でリソースを解放しないと、メモリーが圧迫されて止まりますので注意です。再生終了を検知させてもいいのですが、ここは簡単にインスタンスを生成する前にリリースさせます。

 

 

rawフォルダを使う

 
assetsからデータを取り出しましたが、参考のためrawフォルダに置いた場合です。
この場合mp3などの拡張子はいりません。

rawフォルダをresの下に作成して
音楽素材を入れます。
あるいは直接作ってもできます。
..\app\src\main\res\raw
 
前のコードの audioSetup() の部分のみ変更します。この場合 try catch や prepare() もいりません。
 
MainActivity.java

 

サンプル動画

 

 

実際には、メールやLineなどしながら音楽を聴くという状況が多いと思います。その場合はMediaPlayerはバックグラウンドで再生した方がいいのでServiceとNotificationを使います。

service 01 84x150 1 84x100 - [Android] 簡単なMediaPlayerで音楽を再生する
Servce はバックグラウンドで作業をさせたい場合に使います。システムは直ぐにスリープに入れてしまいます。それでも裏で色々やりたい場合に有...

Reference:
MediaPlayer | Android Developers

スマホの下取り

まだ1年も使っていないスマホを新機種に変えたくて下取りしようとお店に持ち込んだことがありますが、結局なんだかんだと思ったほどの金額になりませんでした(涙

このネットオフは専業のため高額買取が可能で、お店に行く時間が無い人にとっては送料無料の宅配便が自宅まで引取りに来てくれるのは助かります。

定額買取キャンペーン中であればキズがあっても付属品が無くても減額無しでお得です。」


誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加




Google Pixel 3 XLグローバル版
SIMフリー 並行輸入品
6.3インチの大画面
背景をぼかすポートレートモード撮影

Anker PowerCore II Slim 10000
Power IQ 2.0搭載
iPhone & Android対応

シェアする

  • このエントリーをはてなブックマークに追加

フォローする