标签: core-audio

aurioTouch示例应用程序的音频播放/通过不工作?

根据Apple的描述,aurioTouch示例应用程序假设"获取音频输入并将其复制到输出",我认为这意味着应用程序将播放/通过iPhone的麦克风通过iPhone扬声器拾取的任何声音.

然而,当我将应用程序加载到我的iPhone(更新到2.2)时,playthru功能似乎根本不起作用.屏幕上的示波器按预期响应声音和声音,因此应用程序的音频输入一半显然正常工作.

是的,我尝试切换应用程序的"MUTE"按钮,是的,我确保iPhone的"振铃/静音"开关未设置为静音,并且音量未设置为零.我错过了什么?

iphone core-audio

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

Obj-C错误:"在类指针之前预期的非限定id"

我目前正在开发一个iOS开发项目.为方便起见,我在早期阶段将功能分成几个小程序.该项目包括Obj-C,Obj-C++和C++程序.现在我将它们放在最终产品中,并且在(我猜)Obj-C和C++之间的兼容性方面遇到了一些奇怪的行为.

我试图在一个obj-C++程序中初始化一个对象,它来自一个obj-C类.但是在编译obj-C类头文件时我不断收到错误:

#import <Foundation/Foundation.h>
@class AVAssetExportSession;

@interface LibraryImport : NSObject {
AVAssetExportSession * export;   //Error line
NSError* movieFileErr;
}
//class methods
Run Code Online (Sandbox Code Playgroud)

成绩单是这样的:

LibraryImport.h:24:错误:'export'之前的预期unqualified-id

LibraryImport.h:24:错误:实例变量'unnamed'的大小未知

LibraryImport.h:24:错误:预期`;' 在'出口'之前

这个调用在obj-C++文件中是这样的:(这里没有检测到错误,只是觉得有些东西可能相关)

LibraryImport* import = [[LibraryImport alloc] init];
Run Code Online (Sandbox Code Playgroud)

最奇怪的部分是,当它最初由一个纯粹的Obj-C程序调用时,它的工作非常好.但项目性质需要将调用者更改为obj-C++.而且,当我尝试将obj-C文件更改为obj-C++时,我得到的错误比以前更多,包括现有错误.

以下是让我在过去整整一周内撞墙的问题:

  1. 在这种情况下,我如何成功初始化此对象?

  2. 这个问题是否与obj-C和C++之间的兼容性有关?如果是这样,有兼容性的一般解决方案或一些明确的解释吗?

如果需要更多信息,请告诉我(这是我第一次遇到这个问题,我甚至不知道从哪里开始......).任何见解将不胜感激.非常感谢你 :-)

干杯,

曼卡

c++ objective-c core-audio objective-c++ ios

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

将多个音频文件合并为一个

我试图允许选择单词(mp3音频样本)并添加到一个句子,按下播放按顺序播放它们并可选择保存一个组合文件.

core-audio ios

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

在iOS5中使用滤波器音频单元效果

我正在尝试使用远程IO连接并通过内置过滤器效果(仅限iOS 5)路由音频输入,然后退出硬件.我可以让它从输入直接路由到输出,但我无法让过滤器工作.我不确定它是滤波器音频单元还是路由器我错了.

这个位只是我尝试设置过滤器和更改路由以便数据处理它.

任何帮助表示赞赏.

// ******* BEGIN FILTER ********

NSLog(@"Begin filter");

// Creates Audio Component Description - Output Filter    
AudioComponentDescription filterCompDesc;
filterCompDesc .componentType = kAudioUnitType_Effect;
filterCompDesc.componentSubType = kAudioUnitSubType_LowPassFilter;
filterCompDesc.componentManufacturer = kAudioUnitManufacturer_Apple;
filterCompDesc.componentFlags = 1;
filterCompDesc.componentFlagsMask = 1;


// Create Filter Unit
AudioUnit lpFilterUnit;
AudioComponent filterComponent = AudioComponentFindNext(NULL, &filterCompDesc);
setupErr = AudioComponentInstanceNew(filterComponent, &lpFilterUnit);
NSAssert(setupErr == noErr, @"No instance of filter");

AudioUnitElement bus2 = 2;
setupErr = AudioUnitSetProperty(lpFilterUnit, kAudioUnitSubType_LowPassFilter, kAudioUnitScope_Output, bus2, &oneFlag, sizeof(oneFlag));

AudioUnitElement bus3 = 3;
setupErr = AudioUnitSetProperty(lpFilterUnit, kAudioUnitSubType_LowPassFilter, kAudioUnitScope_Input, …
Run Code Online (Sandbox Code Playgroud)

signal-processing objective-c core-audio audiounit ios

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

将音频发送到支持蓝牙的扬声器,IOS

我想在我的应用程序中添加一个功能,用户可以选择在支持蓝牙的扬声器上播放音频.我的车上有一个Parrot Easydrive,这适用于电话,例如Dictafoon App等.

我知道我应该使用Core Audio框架.当蓝牙设备连接时,据说很容易将音频流传输到该连接.我现在正在寻找Core Audio示例代码(或书籍),其中解释了连接和流式传输到具有Core Audio的蓝牙设备.

任何人都可以对此有所了解吗?如果有其他框架或示例代码我可以使用请提及!

提前谢谢了!

bluetooth core-audio speaker a2dp

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

如何从一台iOS设备到另一台iOS设备无线传输AVAsset音频?

我正在做类似的事情,如从iPod库中流式传输音频,通过网络或蓝牙发送数据,以及使用音频队列播放.

感谢您提出这个问题和代码.帮助我很多.

我有两个问题.

  1. 我应该从一台设备发送到另一台设备?CMSampleBufferRef?AudioBuffer?MDATA?AudioQueueBuffer?包?我不知道.

  2. 当应用程序完成播放时,它崩溃了,我收到错误(-12733).我只是想知道如何处理错误而不是让它崩溃.(检查OSState?发生错误时,停止吗?)

    错误:无法读取样本数据(-12733)

core-audio audio-streaming audioqueue ios avassetreader

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

有没有办法以编程方式获取iOS中音频单元的所有参数?

AUParamInfo()似乎不存在于iOS7框架(CoreAudio,AudioUnit,AudioToolbox)中.我想知道如何获得单位的所有参数.也就是说,在不知道它是什么类型或子类型的情况下,因为如果不是,那么答案就是在音频单元参数参考中查找.

core-audio audiounit ios ios7

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

如何在Swift中使用CoreAudio API

我正在将流媒体音频引擎迁移到swift.我发现很难在swift中使用C Audio API.

我有一个AudioFileStreamOpen api的问题,它需要2个C函数作为参数.我不知道如何使用这个API很快.

AudioFileStreamOpen(self as UnsafePointer<()>, propertyProc, packetProc, kAudioFileMP3Type, audioStreamId)
Run Code Online (Sandbox Code Playgroud)

我为此API定义了如下的回调方法.但我得到编译错误.

func propertyProc(inClientData: UnsafePointer<()>,inFileStreamId: AudioFileStreamID,inPropertyId: AudioFileStreamPropertyID,ioFlags: UnsafePointer<UInt32>) -> Void {
  .....      
    }

func packetProc(inClientData: UnsafePointer<()>,inNumberOfBytes: UInt32,inNumberOfPackets: UInt32, ConstUnsafePointer<()>, inPacketDescriptions: UnsafePointer<AudioStreamPacketDescription>) -> Void {
    .....
}
Run Code Online (Sandbox Code Playgroud)

感谢您在swift中正确定义此C API

编译错误

c core-audio ios swift

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

Swift AVAudioEngine崩溃:玩家在处于断开状态时启动

所以下面的代码应该一遍又一遍地重放chimes.wav文件,音高更高,但是底部的错误会崩溃.任何人都可以找到导致此错误的原因吗?

import UIKit
import AVFoundation
class aboutViewController: UIViewController {


    var audioEngine: AVAudioEngine = AVAudioEngine()
    var audioFilePlayer: AVAudioPlayerNode = AVAudioPlayerNode()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.



        var timePitch = AVAudioUnitTimePitch()
        timePitch.pitch = 2000
        let filePath: String = NSBundle.mainBundle().pathForResource("chimes", ofType: "wav")!
        let fileURL: NSURL = NSURL(fileURLWithPath: filePath)!
        let audioFile = AVAudioFile(forReading: fileURL, error: nil)
        let audioFormat = audioFile.processingFormat
        let audioFrameCount = UInt32(audioFile.length)
        let audioFileBuffer = AVAudioPCMBuffer(PCMFormat: audioFormat, frameCapacity: audioFrameCount)
        audioFile.readIntoBuffer(audioFileBuffer, …
Run Code Online (Sandbox Code Playgroud)

core-audio ios swift

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

AURenderCallback中的UnsafeMutablePointer

我不明白该如何UnsafeMutablePointer在Swift 3中使用AURenderCallback

我尝试下面的代码:

import Foundation
import AudioToolbox

let sineFrequency = 880.0

// MARK: User data struct
struct SineWavePlayer {
    var outputUnit: AudioUnit? = nil
    var startingFrameCount: Double = 0
}

// MARK: Callback function
let SineWaveRenderProc: AURenderCallback = {(inRefCon, ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, ioData) -> OSStatus in

    var player = UnsafeMutablePointer<SineWavePlayer>(inRefCon)


    var j = player.pointee.startingFrameCount
    let cycleLength = 44100 / sineFrequency

    for frame in 0..<inNumberFrames {
        var buffers = UnsafeMutableAudioBufferListPointer(ioData)

        UnsafeMutablePointer<Float32>(buffers[0].mData)[Int(frame)] = Float32(sin(2 * M_PI * …
Run Code Online (Sandbox Code Playgroud)

core-audio swift3 unsafemutablepointer

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