モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

nicobriz の件 [ニコ生, Windows]

 どうも、全然ダウンロードされなくて、「あれ、世界って広いはずなのに全然ダウンロードされない…? あれ狭いじゃん。」って思っているモノトーンです。

f:id:mntone:20141129210343p:plain

概要

  1. 報告
  2. 開発記録みたいななにか
  3. アプリについて
  4. まとめ

1. 報告

 昨日、非公式ニコ生アプリ「nicobriz」をリリースしました。

 これ、リリースしたよ、って意味でした。実は 1 週間はブログでも報告せずに、そのまま待とうと思ったんですが、無理でした。今ブログ書いちゃってます。

2. 開発記録みたいななにか

 それは Surface RT を買った日のことでした。その前に Surface RT を買った経緯について書こうとするかな。

 MicrosoftSurface RT について発表したときまでさかのぼるとかなり昔ですが、実は私、初めてデバイスに対して「一目ぼれ」しちゃったんですね。ああ、これは買おうと。実際今手元にあります (タッチパネル不具合が微妙にあるのが厄介だけど)。実際手にしてしばらくして、「買ったんだし何かやろう」って思いました。

 あれ、ニコ生アプリ誰も作る気ないんじゃね?

 そう思った私は始めるわけですよ。何々、カスタムでメディアを再生するには云々… 正直、あの当時は無理に近かったです。特に「rtmp」というプロトコルは単なるストリーミングではなく、メッセージのやり取りもできるのが大きいです。これをやるには WinRT API として公開する必要がある。

 た だ し、WinRT と COM の両方から使えるクラスを設計するには IUnknown による COM interface と IInspectable による WinRT interface を使いこなして設計する必要があります。しかも MSDN に資料が少ない… 半分詰み。そこで救世主、Windows 8.1 で登場した MediaStreamSource クラス。こいつのおかげでかなり設計が楽になりました。

 実は、rtmp 実装に関しては 3 回ぐらいプロトタイプを作ってて、今公開しているのは 4 バージョン目ぐらいになります。おかげ様で、rtmpH.264/AVC の NALUs 構造に詳しくなるなどしてしまいました。

 だいたいこれが、去年の今頃できてきて、「ようやくアプリか…」ってなったわけです。

 OpenNiconico をちょうど年末開発していましたが、「C++ でネットワークアクセスはつらい」ってことで以後 OpenNiconico2 という形で C# で実装しなおしたり、またニコ生コメントレンダラーを C++DirectX で作るなど、アプリレイヤーの開発にも時間がかかりすぎました。

 そして、ようやく先々月ぐらい、これらの基本ライブラリーがそろったわけです、ええ。

 ええ、今公開しているアプリのプレイヤー内部挙動はほぼこの 2 か月で書かれたものになってます。だから、まだバグいっぱい。

3. アプリについて

 起動時のクラッシュ不具合や視聴時のクラッシュ不具合がまだ残っているのでこれを中心に不具合修正、また検索機能を実装し 0.9.1 を公開予定です。とりあえず年末までに。

 Windows Phone 版は UI に関してまだまだ練らないといけないのでもうしばらくお時間いただく感じですねー。何と言っても Windows と挙動が違うところがあるのでそこに関して詳細調査を入れる必要があるので。

4. まとめ

 アプリは http://apps.microsoft.com/windows/app/nicobriz/ab386720-fbe5-4c42-ad38-15aa1f870904 からダウンロードできます。価格は日本円で ¥1,000 になっています。

 無期限でお試し版が利用できます。もしいいな、って思ったら購入していただけるとありがたいです。

 以上。