NW.jsで少しはまった事(MP4再生やサードパーティーモジュール使用)

NW.jsとはWEBページを作成する技術(HTMLとJavaScript) でクロスプラットフォームのデスクトップアプリケーションを作成する事ができるフレームワークです。

オープンソースのウェブブラウザのChromium(クロミウム)とjavascriptをサーバサイドでも稼働可能とするNode.jsをベースに作成されています。

実際のNW.jsの説明は、省きますが少し使用した時、はまった事を記載します。 調べればすぐ解決法が見つかり然程はまった訳ではありませんが、備忘録代わりに

MP4動画再生に関して

<videoタグ>を用いた動画再生が、通常のブラウザーでは問題無く再生できますが 何故か、NW.jsで実行すると再生されません。 少し調べるてみると、
nw.js のサポートする音声や動画のフォーマットは同梱されている FFmpeg モジュールによって決まる。そして nw.js に標準添付されているものは MP3 や MP4 をサポートしていない。FFmpeg モジュールで MP3 や MP4 を有効にすると GPL ライセンスの Copyleft が適用されるのだが、nw.js は MIT ライセンスで配布するため意図的に外しているそうだ。 もしサポートする場合は、FFmpeg モジュールを置き換える必要がある。

引用:nw.js を使ってみる 5 – 簡易音楽プレーヤー – アカベコマイリ

で記載されているように、NW.jsに同梱されているffmegモジュールはmp4動画を再生できませんが
https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases からバイナリ―ファイルも配布されているのでダウンロードして置き換えるだけで使えるようになります。

requireに関して

requireして使用する3rdパーティのnodeモジュールはアプリフォルダーにインストールする必要がある。

npm run devでテストすると問題ありませんが、npm run buildでビルドしたアプリを実行すると、 アプリフォルダーに使用するモジュールをインストールしていないとエラーになります。
まー当然なのですが、

$ cd /path/to/your/app
$ npm install async

引用:Using Node modules · nwjs/nw.js Wiki · GitHub

の記載通りしようする3rdパーティモジュールをアプリフォルダーにインストールしてからビルドします。 使い慣れたjavascriptな事もあり、 基本的には、公式ドキュメントページ(https://docs.nwjs.io/en/latest/)か公式旧バージョンドキュメントページ(https://github.com/nwjs/nw.js/wiki)で 大体の事は分かるようになっています。

サンプルソースもnw.js更に、node.jsも加えればたくさん出てきます。
簡単にちょっとしたアプリを作成できるので結構便利です。