というわけで、紆余曲折を経てようやく公開。
Windows版との機能的な違いは、以下のとおり。
・タグ通知ができる
・ひまわりストリームにも対応してた
うん、あんまり新規性は無いね。
はやりの広告なんぞ入れてみたのだけれど、
アドセンスがあぼられた余波でadmobが使えないので、inmobiを使ってみた。
他の広告業者でも良かったのだけれど、規約を見ると、まぁ恐ろしい……
結局消去法でinmobiに落ち着いた。
日本だとフィルレートあんまりよろしくないらしいけれど、収益は二の次。
まずはAndroidアプリ開発者としてスタートを切ったという事実を喜んでおこう。
ちなみに、自分の端末にインストールしてみたけれど、
今のところ広告が表示されたことは無い。
テストモードではきちんと動いているので、間違ってはいないはずだけれど。
スタートしてみたらそこがゴールでした。という状況は避けたいけれど、
こればっかりはモチベーションとインスピレーションの問題なので
なるようにしかならん。
多分潜在的需要が一番あるはずのWindows版のタグ対応。
うん、そのうちやるよ、そのうち、きっと、たぶん、うん、ごめん……
|壁|ω・`)
いちおう、リンクはこちら
らいつべバルーンの更新でUIをどうしようか考えている間に、
かべつべのフィードのURIが変更になったので、
新バージョンを出す前にそっちの修正を入れる必要が出てきた。
ので、Visual Studio 2012 RC で、らいつべバルーンをビルドしてみたのだけれど、
いわゆる、VC++2010 再頒布可能パッケージで参照しているDLL群が
2012版に置き換わっていた。
VC++2012 再頒布可能パッケージとでも言おうか。
RC版なので、当然MSから新規パッケージのインストーラーなんて出ていない。
でも、ビルドするとらいつべバルーンには必須。
VC2010でビルドすればよいのだけれど、VC2010を今更入れるのもめんどくさい。
一応しばらくは旧URIでも新URIに転送してくれるっぽいのでVC2012が
正式版になるまで待っているのも一つの手段ではある。
実装としては旧バイナリでもXMLの書き換えで対応できる範囲なので、
バイナリ以外のディレクトリ配下全消しでもしてXMLの再作成でも走らないと、
発生しないルートではあるのだけれど。
いちおう、現在配布しているらいつべバルーンは、XMLのURIだけ直しておいた。
UI変更関連のネタは全部ほっぽらかして1.7リリースしてしまおうか。
でも、UI変更入れないと1.7と呼べるほどの進展はないしなぁ……
さて、どーすんべ。
今回はバグ対応のみなのでさっくりと。
変更点は以下。
・音声通知時にノイズが入る件の修正
発生パターンは、以下。
・wevファイルにfactヘッダが含まれている場合。
・末尾に拡張情報が含まれている場合。
元のプログラムが必須ヘッダとデータのみの構造しか想定していなかったために
発生していたバグ。
まさか、4年前に作った自作クラスのバグを今になって対応することになろうとは……
それはそれとして、Livetubeの配信情報が、JSONでも用意されていることを知る。
このJSONファイル、配信タグや視聴者数、コメント数なんて情報が入っている。
これが、何を意味するかというと、
らいつべバルーン制作初期に「Atomフィードに入ってないから」という理由で
リジェクトした、タグ表示/タグ通知といった機能が作れてしまう。
同様の情報はCaveTubeのAtomにも入っていて、対応しない積極的な理由がない。
どーすっかなぁ……
めんどくさいなぁ……
でも、ゴールデンウィークだしなぁ……
という訳で、ダウンロードはこちら
今回は、解説が長いのでサクサク進めよう
ちなみに、1.6.5のリリースをBlogに書いていないのはいいネタが無く面倒になったので。
フリーソフトの制作なんて根を詰めるようなもんじゃないし。
今回の変更点は以下
・通知設定の配信者名が未入力であった場合の動作修正
・お知らせ音のボリューム調整追加
・ゆっくりボイスが驚きの高サンプリングレート化
・ネットで見かけた、xmlの設定ファイルのサイズが0バイトになって起動できなくなる問題の暫定対処。
・ログファイルをメモ帳なんかで開いている時に、ログの追記が実行されると例外を吐く事象の対処。
・「配信取得間隔」のコントロールを変更。最小値は変わらず。
で、今回困ったり時間がかかったりしたこと。
1、設定値のxmlファイルのサイズが0バイトになって起動でコケる事象の対処
恐らく、終了時になんかのタイミングで、オブジェクトが存在しないのを書きこもうとしてると思うのだけれど、
コード上は.NetFrameworkから終了メッセージを貰った後、書き込みをしている。
少なくとも、メッセージを処理し終わるまではオブジェクトが存在しているはずなのだけれど。
また、自分の環境だと問題が出ていないので今ひとつ原因がつかめない。
そういう意味では、昔、対策を諦めたウィンドウ位置の保存に失敗する事例と似てる。
結局、こっちは原因が掴めないので逃げのコードを書くことに。
2、音声ボリュームの追加
ぶっちゃけ、Windows7やVistaではアプリケーション毎に音声ボリュームを設定できるので、
今更らいつべバルーンで設定項目を作る必要はないと思って今まで特に手を入れていなかったのだけれど、
そんなに難しくもない筈なので、作っておくかと思ったのが間違いだった。
今まで使っていた、.NetのSoundPlayerクラスにボリューム変更位あるだろうと余裕こいてたら
あっさりとそんなプロパティは存在しない事が判明する。
なら、別のコントールがあるだろうと、適当に見繕って試してみるも、
「有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール ‘hoge’ がアクセスされました。」
とか、言われる。
どうやらバックグラウンドのスレッドで回すのはダメらしい。
では、どうするか。
と考えた挙句、C++/CLIで記述しているので、C++時代のソースを取り込めることに気がついた。
型変換さえきちんとしてやれば、普通にwinmm.hの低レベルAPIを叩ける。
で、手元には昔にゲームでも作ろうかと思って作っていたwavファイル再生クラスのソース。
条件は揃った。
という訳で、音声再生部分については自前のクラスを使うようにした。
が、今度は再生される音声がなんだか微妙に感じる。
どうも、クラス内でWavを44.1khzの16Bitステレオに変換しているのがダメらしい。
変換しただけで、平均化をかけていないので、妙に角張った音が聞こえてしまう。
しかし、変換しないと音声ボリュームの変更ができないので変換しないわけにもいかない。
結局、ゆっくりボイスをアップサンプリングして無駄に高音質にしてしまうことにした。
ここまでやった後で、デリゲートなる機能があることを知る。
が、機能の実装までやってしまって、簡単にテストした後なので今更そっちを
利用するってのも無いよなぁ……
ちなみに、
『ひまわりストリームのRSSに暫定対応コードをいれる』
というのもあるのだけれど、ひまわりストリームは配信数が増えると1回のリクエストで
全部の配信リストを取れなかったり、RSSに配信者名が入ってなかったりで、
途中でめんどくさくなったのでGUIから無効にするだけで放置することにした。
そんな訳で、難産した割には殆ど変わってないらいつべバルーン1.6.6のリリース。
最近はバージョンアップが多くて、今ひとつ書くネタがない。
バージョンアップする時には、それなりに新機能やら入ってると気分的に良い感じで書けるのだけれど、
そういう目玉機能がそうそう有るわけでもなく。
Blogに送られてくる要望やら意見は自分でも気が付かない点を教えてくれる。
意見をもらった動作の方がユーザに見える動作として綺麗にまとまっている事が多い。
色々と気をつけて作っているつもりではあるけれど、やっぱり自分は開発者側の視点で作ってるんだなぁ。
と、再認識した。
ユーザに優しい動作=プログラムが面倒くさい動作 という図式は基本的に変わらないので、
プログラムで楽をした分だけ後から要望の出る可能性が高いという事になる。
が、面倒くさいので要望が出るまでは放置しよう。
というわけで、要望が有ったのでちゃちゃっと機能追加と動作変更。
変更点は以下
・番組表の並び替え条件を保存するように変更。
・番組表から「通知に追加」「NGに追加」を実行した時にスクロールバーの位置に戻すように変更
という訳で、ダウンロードはこちら