我正在尝试为其构建电平计量AVPlayer.我正在这样做MTAudioProcessingTap,传递给一个AVAudioMix,然后传递给AVPlayerItem.在MTAudioProcessingTap获取与创建kMTAudioProcessingTapCreationFlag_PostEffects标志.
技术问答QA1783有关于PreEffects和PostEffects标志的以下内容:
当您使用kMTAudioProcessingTapCreationFlag_PreEffects标志创建"预效果"音频抽头时,将在应用AVAudioMixInputParameters指定的任何效果之前调用tap.当您使用kMTAudioProcessingTapCreationFlag_PostEffects标志创建"后效应"点击时,将在应用这些效果后调用点击.目前,AVAudioMixInputParameters支持的唯一"效果"是线性音量斜坡.
问题:
当用the创建时kMTAudioProcessingTapCreationFlag_PostEffects,我希望它接收到的样本MTAudioProcessingTap将反映出设置的音量或音频斜坡AVAudioMixInputParameters.例如,如果我将音量设置为0,我希望得到所有0个样本.然而,我收到的样品似乎完全不受体积或体积斜率的影响.
难道我做错了什么?
这是一个快速的脏操场,说明了这个问题.该示例直接设置音量,但在使用音频斜坡时我发现了同样的问题.在macOS和iOS上测试过:
import Foundation
import XCPlayground
import PlaygroundSupport
import AVFoundation
import Accelerate
PlaygroundPage.current.needsIndefiniteExecution = true;
let assetURL = Bundle.main.url(forResource: "sample", withExtension: "mp3")!
let asset = AVAsset(url: assetURL)
let playerItem = AVPlayerItem(asset: asset)
var audioMix = AVMutableAudioMix()
// The volume. Set to > 0 to hear something.
let kVolume: Float = 0.0
var …Run Code Online (Sandbox Code Playgroud) 我将Bonjour与NSNetService结合使用,以从iPhone发布服务器。一切正常,我可以浏览正在服务的页面等。但是,在iPhone上,我想显示主机名(即URL,例如“ myDevice.local。”),以便也可以输入在浏览器中手动寻址(对于缺少bonjour发现服务的客户端很有用)。我的理解是,调用方法[myNetService hostName]应该给我该地址。但是,此调用始终返回nil。我在某个论坛上读到我首先应该解析该服务,但是[myNetService resolve]和[myNetService resolveWithTimeout:10]都调用了委托方法
- (void)netService:(NSNetService *)sender didNotResolve:(NSDictionary *)errorDict;
Run Code Online (Sandbox Code Playgroud)
与错误
{
NSNetServicesErrorCode = -72003;
NSNetServicesErrorDomain = 10;
}
Run Code Online (Sandbox Code Playgroud)
这显然意味着它已经解决。同样,所有这些都在我可以使用该服务时发生。我也可以获取端口,域和服务类型。唯一奇怪的是,调用[myNetService地址]返回一个空数组。
我正在使用SDK 3.1.3。有人知道我会做错什么吗?
ios ×2
avfoundation ×1
avplayer ×1
bonjour ×1
hostname ×1
macos ×1
nsnetservice ×1
objective-c ×1