神記逸天プログラマーブルリーデイズ

行き詰まったことをメモっておく中二プログラマーのブログ。スマホアプリとかゲームアプリ関係が多い

10M動画「assetsはオレの居場所ではないし、addContextViewされても簡単には姿を見せない」

「闇の焔に抱かれて消えろぉぉぉ!」

今日からメモを残そうと思った!


日記として世に出しても恥ずかしくなさそうな内容だったら、公開用のブログに載せて、いろいろ指摘してもらったりなんだとかして、いつかは誰かの役に立つブログを作ってみたい。

なので、今のうちから毎日気づいたことを自分用にメモをしておくのだ!

とりあえずメモ用のブログなので、今日、調べたことと、思いついた言葉をそのまま書き記していく予定! 何日続くかな! 将来の自分、頑張れー!


今日調べたこと


▼assetsに1M以上の非圧縮ファイルは置けないらしい。
請けてる案件で動画を再生する必要があって、10Mくらいあるのだけど、それをassetsに入れて再生しようとしたら全然上手くいかず。

res/rawに入れれば再生できるという記事を何個か見つけたんだけど、cocos2dxだとResourceのファイルってassetsに保存されるから、なんとかしてassetsから再生したかったのだけれど、どうしても「この動画は再生できません」って出ちゃう。涙が出ちゃう。

大人しくres/rawから再生することに。
調べるとすごく丁寧に解説されている記事があって、やっぱり涙が出ちゃう。今度は嬉し涙。

http://techbooster.jpn.org/andriod/multimedia/5683/

いつか、こんな風にすごいブログ書くんだ・・・。


▼VideoViewで音しかならない!?
VideoViewをaddContextViewして動画を表示したところ、音楽だけ聴こえて来た!

videoView = new VideoView(this);
if(videoLayout == null){
  videoLayout = new FrameLayout(this);
  addContentView(videoLayout, new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
  videoLayout.setFocusable(true);
  videoLayout.setFocusableInTouchMode(true);
}
videoLayout.addView(videoView, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, Gravity.NO_GRAVITY));

動画表示への道は険しいようで。
試しにWebViewとかをaddContextViewするとちゃんと表示される。
おかしい、おかしい。 きっとおかしいのは自分だ、と思って調べたらありました。

http://stackoverflow.com/questions/7991091/videoview-show-on-glsurfaceview

mVideoView.setZOrderOnTop( true );

多分、基本的なことなんだろうな。。。
WebViewやButtonを配置したらこれをやらなくても表示されたってことは、きっとViewごとにZOrderの初期値がある程度決まってるのかも。
とにかく、この1行を入れるだけで解決。


今日もちょっとだけ成長!
明日も頑張るぞー!