Bi-Radio

調べたことをφ(..)メモメモ

☆GYAO!のサイトデザインが変更され・・・

GYAO!のサイトデザインが変更され、とても使いづらくなりました。
動画一覧表示が従来の1ページ20件表示から1ページ延々表示?になり
100件あったら延々とスクロールしないと最後まで辿り着けません。
しかも50件ごとに”もっと見る”を押させるという親切仕様です(^_^;
ということで動画一覧をサムネイル表示させるアプリを作ってみました。

GYAO001サムネイル画像を一覧表示し、あらすじは吹き出しで表示するようにしました。
さらに画像をクリックすると別画面が開き個別動画を表示します。

GYAO002さらに個別動画をクリックすると別画面が開きダウンロードを開始します。

GYAO0032019-05-23追記 TVerに対応させました。

GYAO004

・参考サイト
WebClient.CachePolicy プロパティとは何? Weblio辞書
How to: Set a Location-Based Cache Policy for an Applicatio

☆サイマルラジオプレイヤー

ラジオなのでWindowは要らないと思いタスクトレイアイコンを表示してメニューで選局をする方法を試しましたが・・・
Trayメニューが広がりすぎて使いづらい・・・(^_^;
ということでWindow上部にメニューを表示して選局をするようにしました。SRP001がっ、画面になにも表示されない間抜けなアプリになってしまいました( ̄0 ̄)
なにか表示する素材は無いかな~と思考すること数十秒・・・
超!A&G+のように映像も配信してる場合は映像を表示することにしました。A&G映像を表示できるのでラジオではないけど固定URLで動画を配信している・・・
エムキャスを選局リストに追加MCASついでにYahoo!ニュース動画(日テレニュース24・TBSニュース・BBCニュース)も追加SPR-NさらにUeno Panda Liveも追加・・・SRP-Pandaラジオプレイヤーじゃなくなってるような(ーー;)


Logo made with DesignEvo

☆FM++をブラウザを使わずに再生してみる

サイマルラジオプレイヤーを制作しようと思い・・・
JCBACSRAListenRadioFM++の配信方法を調べてみました。
・JCBA:HLS(MP3配信も有り)
CSRAASX 
ListenRadio:HLS
・FM++:WebSocket
FM++以外は MPlayer or mpv(media player)で再生可能なのでOKですが
FM++はどうしましょう?ブラウザのデベロッパーツールで確認すると・・・
f:id:biradi:20181105190929p:plain
wss://fmplapla.com/socket に接続してJSON形式でコマンドを送れば音声データ(Ogg)を受信できるようです。VB.NETでWebSocketを扱うには「WebSocket4Net」ライブラリを使えば容易にできるとのことなので NuGet Gallery | WebSocket4Net 0.15.2 をインストールしてコンソールアプリを作ってみました。
引数に局名(FMらら76.8=fmrara768)を渡しWebSocketで受信した音声データをコンソール標準出力に出力しパイプでMPlayerに渡して再生しています。
コンソールアプリの標準出力をパイプでMPlayerに渡さなくても・・・
MPlayerの標準入力にBinaryWriterで音声データを渡せることを後から知りました(^-^*)

・参考サイト
GitHub - kerryjiang/WebSocket4Net: .NET WebSocket Client
connection code to websocket using vb.net — Binary.com Developers Community
子プロセスの標準入出力 (System.Diagnostics.Process) - 総武ソフトウェア推進所

☆VB.NETでクラスライブラリ(.dll)を作ってみる

「ながらGYAO!」は何かをしながらGYAO!を視聴するときに便利ですが・・・
保存は出来ないので保存は別アプリを使っています。
GYAO! Downloader
視聴と保存を別アプリでやっているので、配信方法が変更される度に両方のアプリを修正しています。無駄なことをしてると思い動画URLを取得する処理をDLLにすることにしました。

「ながらGYAO!」のソースコードから動画URLを取得する処理をコピペし多少の修正をしてデバッグ開始ボタンをポチっとな・・・
「クラスライブラリの出力タイプを持つプロジェクトを直接起動することはできません」
と怒られました。そりゃそうですともDLLだけで実行なんて出来ません。

このDLLを呼び出すプログラムを作らないと・・・
別プロジェクトで簡易的なプログラムを作り先ほど作成したDLLを参照設定に追加してデバッグ開始ボタンをポチっと、テキストボックスが開くので動画再生ページのURLを入力してOKボタンを押下すると、動画URLとタイトルが表示されるハズが何も表示されない(^_^;
どこかおかしいところがあるようだけど、デバッグはどうやるのでしょうか?

今開いてるプロジェクトはDLLを参照して呼び出してるだけなのでDLLの中はデバッグ出来ません。MSDN(Microsoft Developer Network)の方法 : DLL プロジェクトからデバッグするを読むと[プロパティ] →[デバッグ] →[外部プログラムの開始] を選択し、実行するアプリケーションのパス名を指定と書いてある・・・

プロパティ画面を何度見ても[外部プログラムの開始]が無い?先ほどのページ熟読すると「メモ:Visual StudioのExpress Editionでは、外部の呼び出し元アプリケーションを指定できません。実行可能なプロジェクトをソリューションに追加することが必要です。」と書いてありました。プロジェクトをソリューションに追加って何ですか?
検索、検索っと・・・DLLのデバッグ方法もわかり無事DLLが機能してくれました。

DLLはVB.NETで制作してるので「Windows PowerShell」で呼び出せるかな?
PowerShell
動画再生ページのURLを入力したらタイトルと動画URLが表示されました(^_^)V

・参考サイト
【VB】クラスライブラリ(.dll)の作成・使用方法 | トランスソフトだより
VB クラスライブラリの作成 - dll, pdb, 参照設定
Microsoft Visual C# 2010 Express版で「 DLL プロジェクトからデバッグする」
PowerShell – 独自 DLL を使用する | ITLAB51.COM

☆ながらGYAO!

GYAO-MPV
GYAO!などの動画配信サイトで動画を視聴してるときに不便に感じるのは常にブラウザを表示していなければならないことです。再生画面だけを表示できれば・・・”ながら視聴”が出来ると思いGYAO!の配信方法を調べるとHLS配信だったのでmpv(media player)に動画アドレスを渡し再生するアプリを作ってみました。動画再生ページのアドレスをクリップボードにコピーすると再生が始まります。

☆MPlayer SLAVE MODE

サイマルラジオプレイヤーを作ろうと画策したけど、各局のボタンを配置して再生するだけでは簡素すぎるので最低でも一時停止と音量調節ぐらいは付けたいと思いMPlayerについて調べてみると・・・「SLAVE MODE」なるモードがあることを知る。
・SLAVE MODEを使うには -slave でMPlayerを起動する。
・コマンドはMPlayerの標準入力(standard input)に送る。
MPlayerの映像出力を外部アプリで表示するには -wid でウィンドウハンドルを指定する。
下記動画はMPlayer超!A&G+を再生し一時停止と音量調節をしています。

・参考サイト
http://www.mplayerhq.hu/DOCS/tech/slave.txt
Mplayer Control by VB.NET used in Veron Media Player - CodeProject

☆JCBA CSRA ListenRadio FM++ (・・。)ん?

簡易ラジコプレイヤーを制作する為にネットラジオについて調べていたらサイマルラジオなるものを知りました。で、サイマルラジオについて調べると・・・
JCBACSRAListenRadioFM++ いろいろあってわけわからんです(^_^;

JCBAの配信方法を調べたらHLS配信だったので簡易プレイヤーを作ってみました。 JCBA
簡易ラジコプレイヤーは東京の局は16局だけだったのでボタンは手動で配置しましたが
JCBAの場合100局を越えてるので、手動ではなく動的に配置することに・・・
やり方がわからない(^_^; VB.NETで分からないことがあったらDOBON.NETへGO!

ListenRadioの簡易プレイヤーも作ってみたけど・・・ ListenRadio
個別にプレイヤーを作っていたのでは使い勝手が悪いので統合プレイヤーを作成しようと画策中です。続く