小编Rob*_*ena的帖子

如何使用从audioContext创建的分析器来检测播放的声音是否可听?

首先我要描述我的问题,我正在用随机歌曲创建一个自动播放列表,一些歌曲在歌曲结尾处有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)

javascript html5 html5-audio web-audio-api

6
推荐指数
1
解决办法
714
查看次数

获取运行离线标记

我注意到 chrome 商店现在有一些带有“离线运行”标志的应用程序,并且为此类应用程序提供了一个新类别,我开发的应用程序离线运行非常好,但在商店中它没有这样显示,有什么我需要添加到清单中的,还是我在代码中遗漏了一些表明它可以离线运行的东西?

google-chrome-extension google-chrome-app

1
推荐指数
1
解决办法
465
查看次数

将实例作为引用传递给 swift 中的另一个类

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,但我不知道如何传递实例。

任何输入都将受到赞赏,这样做的目的是让 …

ios swift swift3

1
推荐指数
1
解决办法
3883
查看次数