我使用名为“ youtube-ios-player-helper”的iOS库将youtube视频嵌入到我的iOS应用中。但是,我无法更改音量,并且库中似乎没有执行此操作的功能。所以我想添加此功能。
我查看了库的主文件(YTPlayerView.m),以尝试了解如何做到这一点: https://github.com/youtube/youtube-ios-player-helper/blob/master/Classes/YTPlayerView.m
在此文件中,有一些对javascript函数的调用,这些函数是由google在其YouTube API中进行的。给定的参考是 https://developers.google.com/youtube/iframe_api_reference#setVolume 我在此参考资料中发现有一个用于更改音量的功能,即
player.setVolume(volume:Number):Void
描述如下:“设置音量。接受0到100之间的整数。”
我几乎一点都不了解Objective-C,但是使用了YTPlayerView.m中其他函数的复制粘贴(特别是seekToSeconds函数),我添加了以下函数,该函数应该调用Youtube API javascript函数
- (void)setVolume:(int)volume {
NSString *command = [NSString stringWithFormat:@"player.setVolume(%d);", volume];
NSLog(@"%@",command); // for debugging
[self stringFromEvaluatingJavaScript:command];
}
我还在库.h文件中添加了对该函数的引用:
- (void)setVolume:(int)volume;
然后我用
从我的快捷代码中调用它@IBOutlet weak var youtubeView: YTPlayerView!
override func viewDidLoad() {
youtubeView.setVolume(Int32(20))
videoID = "QDYfEBY9NM4"
let playerVars: [AnyHashable: Any] =
["playsinline" : 1,
"origin": "https://www.youtube.com"]
self.youtubeView.load(withVideoId: videoID, playerVars: playerVars)
youtubeView.setVolume(Int32(20)) // called twice just in case
}
@IBAction func playButtonClicked(_ sender: Any) {
youtubeView.playVideo()
}
尝试减小视频的音量,默认情况下为100。修改整个手机的音量并不能解决我的问题,因为我同时播放应用中的其他声音,而我想要的是相对于其他声音减少youtube声音。
代码运行,我所做的函数被调用(由于其中包含了NSLog,我知道了),但是视频的声音并没有减弱,即使我将该值设置为零而不是20,也没有产生任何效果。
您知道如何进行这项工作吗?
答案 0 :(得分:1)
您还必须更改手机的音量:
尝试一下:
require('./bootstrap');
window.Vue = require('vue');
import Vue from "vue";
// Vue.component('example-component', require('./components/ExampleComponent.vue'), default);
import VueTheMask from "vue-the-mask";
Vue.use(VueTheMask);
希望这会有所帮助!
编辑1:
我添加了您的助手功能,使其更易于使用。
#import <MediaPlayer/MediaPlayer.h>
musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
musicPlayer.volume = 0; // min volume (mute)
这也会更改设备音量。因此,只要您更改YouTube视频的音量,设备的音量也会随之更改。
希望这会有所帮助!
答案 1 :(得分:0)
我尝试使用另一种方式(将函数添加到库中 https://github.com/hmhv/YoutubePlayer-in-WKWebView ),但仍然无法正常工作。
我也发现有人遇到类似问题并且没有设法解决这个问题: Youtube API setvolume not working on iOS?
因此,当将youtube阅读器嵌入iOS WebView时,iFrame Youtube API的setVolume()函数似乎无法正常工作。
答案 2 :(得分:0)
问题终于解决了!现在,我们可以在iOS上以编程方式更改youtube的音量:) 我将解决方案放在github上: https://github.com/nicokla/volumeYoutubeIosOk