2018年末年始ハッカソン Xamarinで音読プレイヤー

年末年始に勉強&復習がてら2つのアプリ作っています。
1つめのアプリが一区切りついたのでリリース前に仕様整理を兼ねてまとめます。

どんなアプリ?

音読に特化したミュージックプレイヤー。
英語勉強用に作りました。Qiitaの記事とかでも紹介されているのでそちらをご参照頂ければ
学年ビリのアホが1年半でTOEICスコアを300点から840点に上げた英語勉強法の話 - Qiita

欲しかった仕様

再生リスト読込

音読に利用している素材は基本的にiTunesの再生リストで管理しているので
iTunesより再生リストから読み込んで操作できることが必須条件。

スピリット(スラッシュリーディング)区切りでの再生

1つの音声ファイルの特定部分をリピートを簡単にする機能が欲しかった。
詳細は機能紹介の項目にて記述します。

リピーティングを簡単にするための機能

"スピリット(スラッシュリーディング)区切りでの再生"を利用してリピーティングも
簡単にできるようにしたかった機能です。詳細は機能紹介の項目にて記述します。

再生速度の変更

再生速度の変更、Podcastで実装されてますね。
欲しかった機能です。

秒単位の前後移動

特定の秒単位スキップ機能です。
PodcastやYoutubeアプリで実装されています。

その他、基本的な機能

必要最低限な曲単位の前後移動など。

アプリ紹介

画面
f:id:furugen098:20180105005516p:plain

各機能

動画(gif)を交えての説明

スピリット(スラッシュリーディング)区切りでの再生/移動

主な手順
①対象の音声ファイルを再生しながらフラグ(オレンジ)を起てる。
②フラグを一度立てれば移動ボタンで自由に移動が可能。
f:id:furugen098:20180105010246g:plain
③フラグリピートボタンをONにすればフラグ間での自動リピート可能
f:id:furugen098:20180105010406g:plain

リピーティングを簡単にするための機能

主な手順
①フラグが立っている状態でリピートモード(画像参照)に変更
②フラグまで再生されるとフラグ間の再生時間分、一時停止状態になります。
 画像では1つめのフラグと2つめのフラグ間が約11秒あるため、約11秒一時停止しています。
 この間にリピーティングを行います。
f:id:furugen098:20180105011130g:plain

再生速度の変更

0.5〜2.0倍速
再生時間の表示は倍率で増減するのではなく再生時間の表示を遅く/早くしています。
f:id:furugen098:20180105011637g:plain

秒単位の前後移動

10秒単位でのスキップとしました。
f:id:furugen098:20180105011804g:plain

その他の基本的な動作は省略。
各フラグのステータスは音声ファイルごとに保存される仕様になっていますので、
一度フラグ設定してしまえば通常のミュージックプレイヤーと同じ感覚で利用できます。

まとめ

リピーティング用の音声ファイルを作るのが大変でしたので音読プレイヤーを作成しました。
個人用に作りましたが、音読による語学学習をされている方に是非使ってもらえたら嬉しい限りです。
開発内情としては本アプリはXamarin Formsで実装しましたがプラットフォーム特有のプログラムはポインタの座標取得と音楽再生&再生リストの取得程度なのでAndroid版の対応も簡単なはず。
一緒にリリースしたいですが、取り急ぎ必要なiOS版を作りました。
もう少し修正してiOS版はリリースしたいと思います。