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

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

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

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

YouTube

YouTubeとはユーザーがビデオをアップロード・共有・閲覧できるビデオ共有ウェブサイトです。

JavaScript

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

837閲覧

【Swift】iOSアプリでYouTube動画を4倍速再生したい

AsazukeMochi

総合スコア0

iOS

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

YouTube

YouTubeとはユーザーがビデオをアップロード・共有・閲覧できるビデオ共有ウェブサイトです。

JavaScript

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/11/13 15:33

前提・実現したいこと

YouTubeのクライアントアプリを作成しております。
4倍速再生機能を実装したかったのですが、googleが提供しているyoutube-ios-player-helperでは2倍速までしか再生できなかった為、
下記2つの方法を試したのですが、どちらも4倍速再生ができませんでした。

YouTube動画を4倍速再生する方法がありましたら、ご教示頂きたいです。

試したこと

【方法1】
WKWebViewでYouTubeのWebサイトを表示して動画を再生し、
JavaScriptで動画の再生速度を変更する方法を試しました。
音声は4倍速再生出来たのですが、映像は2倍速より速くするとカクついて表示されました。

document.querySelector("video").playbackRate = 4.0

【方法2】
https://qiita.com/TaigaNatto/items/384318fb73b4f4712f6e
上記の記事を参考にYouTube動画の.m3u8を取得し、

https://developer.apple.com/documentation/avfoundation/avplayerlayer
Apple公式ドキュメント通りに作成したPlayerViewで動画を再生、
再生速度を変更する方法を試しましたが、2.0までしか再生速度を設定できませんでした。

let player = AVPlayer(url: URL(string: "https://(略)/index.m3u8")!) self.playerView.player = player self.playerView.player.rate = 4.0

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

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

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

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

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

guest

回答1

0

The current playback rate.

Discussion

A value of 0.0 pauses the video, while a value of 1.0 plays the current item at its natural rate. Rates other than 0.0 and 1.0 can be used if the associated player item returns true for the AVPlayerItem properties canPlaySlowForward or canPlayFastForward.

上記の公式ドキュメントに記載されている通り、rate として 0.0 - 1.0 より外側(負の値、もしくは1.0より大きな値)を指定した場合には、canPlaySlowForward ないし canPlayFastForward をチェックするように指示してありますので、この値を見て判断されてはいかがでしょうか。

false が戻るようであれば、指定した再生スピードでの再生はできないと思われます。

A Boolean value that indicates whether the item can be fast forwared.

iOS13 以降であれば AVKit を使い方法があるかもしれませんが、4倍速での再生を補償するものでは当然ありませんのでご注意ください。
リンク先にはコンパイル可能なサンプルも置いてありますので、それを参考にするといいかと思います。

This sample code project demonstrates techniques for tracking AVPlayerViewController presentation state across multiple application scenarios, including being displayed fullscreen, embedded inline, or as Picture in Picture.

投稿2020/11/14 02:37

TsukubaDepot

総合スコア5086

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問