2017-09-12 16 views
0

私の目標は、YouTube iFrame APIを使用して、動画が再生され、表示がスクロールされるとミュートされるようにすることです。この部分はうまく動作しています。iOS SafariのYouTube API、プログラムでカスタムコントロールでミュート/ミュート解除しますか?

モバイルでは、機能しないものは、ユーザーにビデオをミュート/ミュート解除するボタンを表示しようとしています。そのため、ビデオの再生が始まり、サウンドをオンにするオプションをユーザに与えたいと考えています。残念ながら、モバイルのYouTubeコントロールにはオプションが表示されません。また、動画でmute()またはunMute()と電話すると、モバイルで0の効果があります。私のミュート/ミュート解除ボタンはデスクトップ上で動作するので、構文上の問題ではありません。

私はここでさまざまな答えを見つけましたが、すべて古くなっており、ビデオのルールに関するWebkitの仕様を読んでいます。私はmute()のビデオをplay()に呼び出してから、iOSのスクロールでプログラムで再生を開始するようにしています。しかし、いったん再生すると、ユーザーのオーガニッククリック操作がプレイヤーに影響を与えるようにiOSに指示するイベントの魔法の組み合わせはありますか?

ルールは、ユーザーがオーディオを制御する必要があると言います。ユーザーがビデオをミュート/ミュート解除するために何かをクリックした場合、どうすればOKかをWebkitに伝えることができますか?

+0

これはSafariの制限で、YouTubeのAPIではなく、[報告された問題](https://github.com/videojs/video.js/issues/4373)のiphoneで消音ボタンが消える)。 [iOSアプリケーションのYouTube動画をYouTubeヘルパーライブラリで埋め込む](https://developers.google.com/youtube/v3/guides/ios_youtube_helper)をチェックすることができます。これはオープンソースライブラリで、YouTube iframeプレーヤーを埋め込むことができますiOSアプリケーションに追加します。これにより、問題に関する回避策を見つけるのに役立ちます。 –

+0

お返事ありがとうございます!私はそれをうまく動作させることができたし、YouTube APIのisMuted()メソッドが必ずしも正しい値を返すとは関係ないと思う。だから、ビデオのミュート/ミュート解除状態を管理するために、ビデオにクラスを追加/削除することを決めたので、意図したとおりに動作します。 –

答えて

0

YouTube API isMuted()は、動画をミュート/ミュート解除するタイミングを決定するブール値を返すメソッドです。しかし、isMuted()の値を記録した後、私はモバイル上の何らかの理由で必ずしも正しいとは限りませんでした。したがって、ビデオはミュートされますが、それでもfalseを返すので、ミュート解除機能は起動しません。

解決策は、APIを信頼できず、ユーザーがボタンをタップしてミュート/ミュート解除するときにビデオラッパーにあるis-mutedクラスを切り替えることでした。デスクトップやiOS Safariで意図したとおりに動作するようになりました。

関連する問題