LoginSignup
9
5

More than 1 year has passed since last update.

[Android]MediaPlayerとExoPlayerの違いをまとめる

Last updated at Posted at 2019-10-03

更新(2022/01/26)

ExoPlayer でも RTSP がサポートされてるようになったり状況は変化しているようです。
こちらの記事の情報は古くなってきているので、参考までにご覧ください。

はじめに

Androidでメディアを再生するにはMediaPlayerとExoPlayerを使った2種類の方法がある。
この2種類の特徴についてまとめて、どのような違いあるのか比較します。

MediaPlayerとは?

Android 1.0(API Level 1)の頃からあるライブラリです。
Androidに保存されている動画・音声、またはRAWリソースファイルの再生ができる。

ExoPlayerとは?

Googleが提供しているメディア再生用のOSSライブラリです。
Androidに保存されている動画・音声、またはRAWリソースファイルの再生できるだけでなく、
メディア配信(DASHHLSSmoothStreaming)・プレイリスト再生・字幕表示などもサポートしている。

何が違うのか?

MediaPlayerとExoPlayerでは機能的なところや技術的なところにも違いがある。
今回はそのなかでも機能的な面についてまとめます。

サポートするデバイス

MediaPlayerとExoPlayerではサポートするデバイスが異なる。
特にExoPlayerでは利用する機能ごとにサポートデバイスが変わるようなので注意が必要。

名称 Android Minium Version API Minimum Level 参考資料
MediaPlayer 1.0 1 -
ExoPlayer 4.1 16 詳細はこちらに書いてる

サポートする機能

メディア再生にはあまり違いがありませんが、ストリーミング配信に関しては大きく違いがある。
またプレイリスト機能などExoPlayerにしかないものがある。

名称 機能 参考資料
MediaPlayer ・音声・映像再生(AAC・MP3・FLAC・MP4・WebM)
・ストリーミング再生(RTSP・HTTP Progressive Streaming)
・画像表示(BMP・GIF・JPEG・PNG)
・DRMコンテンツ再生
MediaPlayer overview
Supported media formats
ExoPlayer ・音声・映像再生(AAC・MP3・FLAC・MP4・WebM)
・ストリーミング再生(DASH・HLS・SmoothStreaming)
・DRMコンテンツ再生
・プレイリスト再生
・UIコンポーネント
Pros and cons - ExoPlayer
Supported media formats - ExoPlayer

ストリーミング配信

MediaPlayerはレガシーな配信プロトコルであるRTSPを再生でき、
ExoPlayerはモダンな配信プロトコルであるDASH・HLSを再生できるようになっている。
RTSPでしか通信できないものに対してはMediaPlayerが使うしかなさそう。

プレイリスト再生

ExoPlayerはプレイリスト再生に対応している。
このプレイリスト再生は次の映像をプリバッファリングしてくれるので、
映像を途切れさせることなく再生できるみたい。

MediaPlayerで再生すると

例えばMediaPlayerで映像を切り替えると
切り替え時にバッファリングが発生してしまうので映像が途切れる。
image.png

ExoPlayerで再生すると

しかしExoPlayerで再生すると次の動画を切り替える前に
バッファリングしてくれるので映像を途切れさせないで再生できる。
image.png

まとめ

  • メディア再生の機能については特に違いはないので、
    MediaPlayer、ExoPlayerのどちらを使っても問題ない
  • ストリーム配信については使える配信プロトコルが大きく違うので、
    配信プロトコルにあわせてMediaPlayerかExoPlayerを使うか決める必要がある。
  • ExoPlayerにはプレイリストを使った再生ができるので、
    複数のメディアを操作したり切り替える場合はExoPlayerを使ったほうが便利そう。

参考

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5