備忘録 | にっき

にっき

Android開発してます。

Twitterにも書いちゃったけど、備忘録として書いとこう

前回記事の続き
1に関して実装が完了した。

【大まかな流れ】
非同期タスク内で以下の処理
※事前にログイン済みクッキーを保存しておき、以下のリクエスト時には必ず使う

getFlvを呼ぶ→URL取得(動画取得で使うメイン)
視聴ページ呼ぶ→「nicohistory」をそのままPreferenceに保存
処理完了後、動画閲覧用のActivityにURLを渡す(Callback)

VideoViewActivity(動画閲覧用アクティビティ)

「nicohistory(視聴Cookie)」と「user-session(ログインCookie)」を
「nicohistory=hoge;user-session=fuga;」に変換後
map.put("Cookie", cookieString); といった感じでマップに保持

setDataSourceに受け取ったURLと↑で作ったmapを渡す


再生できた━━━━(゚∀゚)━━━━ッ!!


【感想・補足】
参考にしたサイトの9割がwatchページを開いた後に~とかいうザックリな説明だったけど
結果的には視聴ページを開いた時に受け取る「nicohistory」というCookieを動画リクエスト時に渡せば良いだけだった。
これは簡単で、問題はMediaPlayerに渡す箇所。
setDataSource自体はMap<String, String>で受け取るからCookieを文字列にしないといけなかった。
ヘッダー情報として渡す際は「Cookie: name=value; name2=value2;(ry」という感じ。

んで、APIが14より前だとヘッダー情報が受け取れるsetDataSourceが
公開されてなくてどうしようもなかった。
APIレベル上げても良かったんだけど、

How do I include http headers with MediaPlayer setDataSource?
を参考に半ば強制的に呼び出した。at least since Froyo 2.2.x, API Level 8 とかあるし良いよねw

そんな感じで山場は超えたかな。
課題としては

・動画重いと頻繁に止まるのでスムーズな再生をしたい(もしくはスムーズに見せかけたい)
・有料動画とか、nm動画とか、エコノミーとか、ニコニコ固有の仕様に対する対応
・プレイヤーに機能追加(リピートとか)
・コメント閲覧・投稿機能(ニコニコの肝だよね。俺はコメントしないから要らないけど)

といった感じで山積みなんだけど、そもそもこのアプリの趣旨が
「シンプルで、通勤時にササッと見れるor聴ける」って感じだから
ガッツリとニコニコ使いたいユーザー向けではないんだよなあ

そもそも、多機能+無料なやつって一杯出回ってるし。
多機能だと朝ちょっと見るのには操作が多いんだよねー
どこまで詰め込むかの線引が難しいなあ。