質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

2477閲覧

WKWebViewで動画再生ができない

qazxswedc

総合スコア0

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/08/21 05:02

編集2020/08/24 08:52

実現したいこと

cordovaでスマホアプリを作成しています。
iOSアプリでUIWebViewが使用できなくなるため、WKWebViewで動くように作り変えています。

videoタグを使用し、撮影した動画を再生したいのですが、うまくいきません。
ご助言お願いします。

######実現したい処理の流れ

  1. 動画を撮影し後、プレビューを表示する。
  2. プレビュー確認後、保存ボタンを押して動画を保存する。
  3. 保存した動画を一覧画面に並べて表示する。
  4. 一覧画面で動画を押してプレビューを再生する。

問題点

●動画を撮影し後、プレビューを表示する。
→プレビューを再生することができません。
プレイヤーは表示されますが、再生ボタンを押してもプレビューが始まらず、
動画の時間なども「--:--」といった表示になります。

●一覧画面で動画を押してプレビューを再生する。
→こちらも上記と同様に再生することができません。
プレイヤーは表示されますが、再生ボタンを押してもプレビューが始まらず、
動画の時間なども「--:--」といった表示になります。
動画は撮影後AppData/Documents/に保存し、一覧画面表示時にAppData/tmp/にコピーしています。

環境

Cordova v8.1.2 cordova-plugin-camera 2.4.1 cordova-plugin-device 1.1.4 cordova-plugin-file 4.3.1 cordova-plugin-file-transfer 1.6.1 cordova-plugin-inappbrowser 4.0.0 cordova-plugin-media 2.4.1 cordova-plugin-media-capture 1.4.1 cordova-plugin-migrate-localstorage 0.0.2 cordova-plugin-wkwebview-engine 1.2.1 cordova-plugin-wkwebview-file-xhr 2.1.4 cordova-plugin-wkwebviewxhrfix 0.1.0 ※プラグインは抜粋したものになります。

ソース

Config.xmlに以下の内容を設定

<preference name="WKWebViewOnly" value="true" /> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" /> <preference name="AllowInlineMediaPlayback" value="true" /> <feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <engine name="ios" spec="~5.1.1" />

動画を表示しているページ

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script type="text/javascript"> $(function() { $('#video').attr('src', clickFile); }); </script> </head> <body> <div class="modal-header" data-dismiss="modal" aria-hidden="true"></div> <video id="video" src="" style="width:100%;" controls playsinline webkit-playsinline></video> <div class="modal-footer" data-dismiss="modal" aria-hidden="true"></div> </body> </html>

src要素はJavaScriptを使用して設定しています。
設定後は以下の通りになります。

<div class="modal-header" data-dismiss="modal" aria-hidden="true"></div> <video id="video" src="file:///var/(略)/tmp/movie1.mov" style="width:100%;" controls playsinline webkit-playsinline></video> <div class="modal-footer" data-dismiss="modal" aria-hidden="true"></div>

その他

●UIWebViewを使用していた際は、動画を再生することができました。
→WKWebViewに作り変える過程で以下の修正をしました。
・プラグインの追加

cordova-plugin-wkwebview-engine 1.2.1 cordova-plugin-wkwebview-file-xhr 2.1.4 cordova-plugin-wkwebviewxhrfix 0.1.0

・プラグインの更新

cordova-plugin-inappbrowser 1.2.0 → 4.0.0

・設定を追加

<preference name="WKWebViewOnly" value="true" /> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" /> <preference name="AllowInlineMediaPlayback" value="true" /> <feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature>

・ソースを修正
「playsinline webkit-playsinline」を追加しました。

<video id="video" src="file:///var/(略)/tmp/movie1.mov" style="width:100%;" controls playsinline webkit-playsinline></video>

●一覧画面の2回目表示以降であれば、プレイヤーに×が表示されていないため、
動画ファイルの読み込み自体は成功していて、設定などが足りず再生することができていないと考えています。

●何か気になる点や、設定漏れなどありましたらご助言お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問