首先我要描述我的问题,我正在用随机歌曲创建一个自动播放列表,一些歌曲在歌曲结尾处有10-15秒的静音,我想要实现的是从分析仪中检测到当一首歌静止了5秒并对此采取行动时.
到目前为止,我有这个:
var context, analyser, source, audio;
context = new (window.AudioContext || window.webkitAudioContext)();
analyser = context.createAnalyser();
audio = new Audio();
source = context.createMediaElementSource(audio)
source.connect(analyser);
analyser.connect(context.destination);
var playNext = function() {
var pickedSong;
// chooses a song from an api with several
// thousands of songs and store it in pickedSong
audio.src = pickedSong;
audio.play();
}
audio.addEventListener('ended', playNext);
playNext();
Run Code Online (Sandbox Code Playgroud)
我知道答案在分析器的某处,但我没有发现它返回的数据有任何连贯性.
我可以这样做:
var frequencies = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatFrequencyData(frequencies);
Run Code Online (Sandbox Code Playgroud)
并且频率var将包含2048个键,每个键具有随机(对我而言)数字(-48.11,-55,-67等等),这些数字是否表示与所发挥的感知声音有关的任何内容?我发现它是否足够低,人们会认为什么都没有播放.
为了检测我主要想要这样的东西:
var isInSilence = function(){
return !audible;
}
var tries = 0;
var …Run Code Online (Sandbox Code Playgroud) 我注意到 chrome 商店现在有一些带有“离线运行”标志的应用程序,并且为此类应用程序提供了一个新类别,我开发的应用程序离线运行非常好,但在商店中它没有这样显示,有什么我需要添加到清单中的,还是我在代码中遗漏了一些表明它可以离线运行的东西?
Swift 新手,我试图将一个类的实例传递给另一个类,但编辑器一直将其标记为错误,这是我的代码:
ViewController.swift
import UIKit
import Foundation
class ViewController: UIViewController {
let handler: Handler = Handler(controller: self)
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Run Code Online (Sandbox Code Playgroud)
Handler.swift
import Foundation
class Handler
{
var controller: ViewController? = nil
init(controller: ViewController) {
self.controller = controller
}
}
Run Code Online (Sandbox Code Playgroud)
该行let handler: Handler = Handler(controller: self)给出以下错误:
Cannot convert value of type '(NSObject) -> () -> ViewController' to expected argument type 'ViewController'
Run Code Online (Sandbox Code Playgroud)
我来自 java、c#、php 背景,据我所知,这些语言self相当于this,但我不知道如何传递实例。
任何输入都将受到赞赏,这样做的目的是让 …