情况有点类似:
我正在编写Xcode,同时在我的蓝牙耳机上听音乐...你知道要阻挡世界.
然后,我开始在iOS模拟器和BOOM中启动我的应用程序突然间,我的水晶般清晰的音乐变得混乱,超低质量,就像它在2个街区之外的浴缸里玩......在20世纪40年代.
注意:如果我在笔记本电脑或电影院显示器上播放音乐并且我启动了SIM卡,则不会出现质量下降的情况.似乎只是一个Sim - >蓝牙问题.
问题不仅仅是讨厌.因为通常在停止模拟器后,蹩脚的浴缸质量音乐继续.为了解决这个问题,我必须在OSX中打开声音首选项并短暂切换回我的笔记本电脑声音,然后再回到我的蓝牙耳机.
这是一个大问题,因为我每天50x启动模拟器并且必须每次都做这个切换事情以及听40s时代单音乐无线电音质.
仅供参考,我使用的耳机是Plantronics Back Beat Pro,我是最新的固件.我在OSX 10.11.4和Xcode 7.3上......但是这个问题在所有版本中都持续了2年多了.你可以救我从20世纪40年代?
我使用assetUrl从iPod库中读取歌曲(在代码中命名为audioUrl)我可以用很多方式播放,我可以剪掉它,我可以用它来做一些但是......我真的不明白我要用这个做什么CMSampleBufferRef获取绘制波形的数据!我需要有关峰值的信息,我怎么能得到这个(也许是另一种)方式?
AVAssetTrack * songTrack = [audioUrl.tracks objectAtIndex:0];
AVAssetReaderTrackOutput * output = [[AVAssetReaderTrackOutput alloc] initWithTrack:songTrack outputSettings:nil];
[reader addOutput:output];
[output release];
NSMutableData * fullSongData = [[NSMutableData alloc] init];
[reader startReading];
while (reader.status == AVAssetReaderStatusReading){
AVAssetReaderTrackOutput * trackOutput =
(AVAssetReaderTrackOutput *)[reader.outputs objectAtIndex:0];
CMSampleBufferRef sampleBufferRef = [trackOutput copyNextSampleBuffer];
if (sampleBufferRef){/* what I gonna do with this? */}
Run Code Online (Sandbox Code Playgroud)
请帮我!
我在CrashLanding示例中使用Apple的SoundEngine示例代码来播放多个音频文件.使用CrashLanding附带的示例caf文件一切正常但是当我尝试使用我自己的样本使用afconvert转换为CAF时,我得到的是一个沉默的石头;)
有没有人有afconvert设置会生成一个能够通过OpenAL播放的CAF文件?
[该]播放器同样适用于本地和远程媒体文件
但是,AVAudioPlayer的文档说明如下:
Apple建议您使用此类进行音频播放,除非您正在播放从网络流捕获的音频
对于我正在做的工作,我需要一些AVAudioPlayer的功能,但我的所有音频都在流式传输.AVAlayer没有的AVAudioPlayer主要需要的是"播放"属性.没有该属性,很难构建一个玩家UI.
那么AVPlayer和AVAudioPlayer之间的区别是什么让后者不适合网络流?有没有办法从AVAlayer获得AVAudioPlayer提供的一些信息,如"播放"属性?
在文档中,我看到了几个音频框架.所有这些似乎都是针对播放和录制音频.所以我想知道这些之间的巨大差异是什么?
音频工具箱,音频单元,AV基础和核心音频.或者我错过了一个能够很好地概述所有这些内容的指南?
我正在尝试编写一个可以添加声音效果的iOS应用.我试图在auconverter和remoteIO之间放置一个效果音频单元(例如,失真和混响).设置完AU后,没有声音.
NewAUGraph(&mAuGraph);
AUGraphOpen(mAuGraph);
AUNode remoteOutputNode, converterNode, effectNode;
AudioUnit remoteIOAudioUnit, converterUnit, effectUnit;
AudioComponentDescription cd;
cd.componentManufacturer = kAudioUnitManufacturer_Apple;
cd.componentFlags = cd.componentFlagsMask = 0;
// remote io
cd.componentType = kAudioUnitType_Output;
cd.componentSubType = kAudioUnitSubType_RemoteIO;
AUGraphAddNode(mAuGraph, &cd, &remoteOutputNode);
// converter
cd.componentType = kAudioUnitType_FormatConverter;
cd.componentSubType = kAudioUnitSubType_AUConverter;
AUGraphAddNode(mAuGraph, &cd, &converterNode);
// ipodeq
cd.componentType = kAudioUnitType_Effect;
cd.componentSubType = kAudioUnitSubType_Distortion;
AUGraphAddNode(mAuGraph, &cd, &effectNode);
//callback
AURenderCallbackStruct callbackStruct;
callbackStruct.inputProc = renderCallback;
callbackStruct.inputProcRefCon = &audioDataInfo;
AUGraphSetNodeInputCallback(mAuGraph, converterNode, 0, &callbackStruct);
// set audio unit asbd
AudioStreamBasicDescription audioFormat = AUCanonicalASBD(44100.0, audioDataInfo.inputFormat.mChannelsPerFrame);
AUGraphNodeInfo(mAuGraph, converterNode, …Run Code Online (Sandbox Code Playgroud) 有人可以向我解释一下OpenAL如何适应iPhone上的声音架构?
似乎有不同级别的API用于处理声音.较高级别的人很容易理解.
但是我的理解变得模糊不清.有Core Audio,Audio Units,OpenAL.
这些之间的联系是什么?openAL是基础,它取决于Core Audio(其中包含作为其低级对象之一的Audio Units)?
XAL似乎没有记录OpenAL,但我可以运行使用其功能的代码.
我创建了一个iPhone应用程序来记录我们的声音.当我尝试录制时,我收到以下声明中的错误消息.
recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&err];
Run Code Online (Sandbox Code Playgroud)
错误域= NSOSStatusErrorDomain代码= 1718449215"操作无法完成.(OSStatus错误1718449215.)"
如果我试图在.caf文件中记录,它工作正常.如果我尝试使用.m4a,我收到此错误消息.
请帮我解决一下.
谢谢.
这意味着什么,我有什么选择?
implicit conversion of an Objective-C pointer to 'void *' is disallowed with ARC
Run Code Online (Sandbox Code Playgroud)
我正在将一个Xcode3项目移植到iOS5,它使用AudioSessionInitialize
AudioSessionInitialize(NULL, NULL, NULL, self);
Run Code Online (Sandbox Code Playgroud)
其中,self这里是一个视图控制器.
core-audio ×10
iphone ×6
objective-c ×3
audio ×2
audiounit ×2
ios ×2
openal ×2
afconvert ×1
avfoundation ×1
bluetooth ×1
ios4 ×1
ipod ×1
record ×1
streaming ×1
waveform ×1