Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ExoPlayerの倍速再生への道のり

Avatar for daisukefuji daisukefuji
February 08, 2019

 ExoPlayerの倍速再生への道のり

2019年2月8日にTECH PLAY Shibuya で行われた [ スタディサプリ/Quipper Product Meetup #2 〜ExoPlayerの倍速再生への道のり〜 ] のイベント登壇資料です。

## 概要
倍速再生は受験生の学習時間を節約するための重要な機能です。現在はExoPlayerにAPIが実装され簡単に動画の再生速度を変更することができますが我々はその実装を待つことができず独自実装する必要がありました。その際に得た知見を通してExoPlayerの内部構造に迫ります。

Avatar for daisukefuji

daisukefuji

February 08, 2019
Tweet

Other Decks in Technology

Transcript

  1. #sapurimeetup ExoPlayerの倍速再生への道のり @daisukefuji / Daisuke Fuji 携帯向け独自Linux based OSの開発者としてスタート iOS/Androidに負けAndroid

    エンジニアになる(OS開発競争に負けたあたりを詳 しく知りたい人は`ALPを支えられなかった技術`で検索) 2015年 Quipper入社 2018年 動画プラットフォーム改善を推進 4
  2. #sapurimeetup タイトル Androidでのclient sideの再生速度の機運が高まる ➔ ExoPlayerはMin SDK version 16(Android 4.1)以上

    ➔ 我々のアプリのOS versionシェアの内訳でAPI level 16未満の割合が減っ た ➔ Min SDK versionの見直し 9
  3. #sapurimeetup タイトル The available library modules ➔ exoplayer-core: Core functionality

    (required). ➔ exoplayer-dash: Support for DASH content. ➔ exoplayer-hls: Support for HLS content. ➔ exoplayer-smoothstreaming: Support for SmoothStreaming content. ➔ exoplayer-ui: UI components and resources for use with ExoPlayer. 14
  4. #sapurimeetup ExoPlayerの倍速再生への道のり MediaCodecAudioTrackRenderer - 1 void onOutputFormatChanged(MediaCodec codec, MediaFormat outputFormat)

    出力フォーマットが変わったときに呼ばれるメソッド 追加 - Sonicの初期化 21
  5. #sapurimeetup ExoPlayerの倍速再生への道のり MediaCodecAudioTrackRenderer - 2 boolean processOutputBuffer(..., final ByteBuffer, ...)

    出力バッファを処理するメソッド 追加 - Sonicで変換したバッファを再生 22