Tag: audio

在Swift中,当我的应用程序打开时,如何让其他应用程序继续播放audio?

我环顾四周,发现了几乎相似的问题,但没有什么不同。如果我在某处错过了答案,我会道歉。 我正在使用SpriteKit在Swift中完成一个游戏。 我玩过的大多数其他游戏,我可以在后台播放音乐,还可以在播放游戏时听到它。 当我玩我的游戏时,我注意到它会自动closures来自其他应用程序的audio。 我不使用AVAudioPlayer的声音,因为我目前只有less量的audio效果,所以我只是使用SKAction.playsoundfilenamed行动。 我有逻辑在那里打开和closures我的声音,但这只是使用一些内部的if / else逻辑。 我想知道如果也许有一些AVAudio属性,我可以设置,将允许其他应用程序的audio,当我打开时继续播放? 我无法在文档中find它。 谢谢!

使用AVPlayer的audioAirplay不能在后台工作

我正在使用来自远程URL的AVPlayer类进行audio回放。 如果我只是玩耳机/内置扬声器,它会玩的很好,但我看到AirPlay的一些古怪。 当我改变使用AppleTV AirPlay时,它将stream式传输audio,但在我的iPhone上,audio播放指示器(顶部菜单栏中的小“播放”三angular形)消失,当我locking手机而不是继续背景,它停止。 (当正常播放时,它在后台播放很好)。 为什么AVPlayer不能在后台通过AirPlay播放audio? 这是其他人看到的吗? 有没有办法解决它?

Cordova | 从iOS上的麦克风获取直播stream

我正在尝试构build一个语音日历应用程序,需要使用麦克风的实时stream进行语音识别。 所以你有一个button开始聆听麦克风,当用户停止说话时自动停止。 我已经探索了Cordova Media API,它允许我将数据logging到一个wav文件中。 这个工作,但使得这个过程非常缓慢,因为我需要等待录制完成。 我使用https://api.ai作为构build应用程序的第一个版本的起点。 它照顾了所有的“听”部分! 对我来说,下一个阶段是与几个不同的语音识别API集成。 我面临的主要问题是缺乏本地开发技能,那么是否有任何cordova插件可以帮助我做到这一点? 2016年4月1日更新 find这个https://subvisual.co/blog/posts/39-tutorial-html-audio-capture-streaming-to-node-js-no-browser-extensions将试图通过webrtc在cordova实现这一点。 2016年4月2日更新 安装https://github.com/eface2face/cordova-plugin-iosrtc来利用webrtc 2016年4月3日至2日更新 卡在AudioContext.createMediaStreamSource不是iOS上的function! AudioContext.createMediaStreamSource替代iOS? 2016年4月4日至6日更新 本土化 – 学习iOS开发的时间!

swift xcode播放播放列表中的声音文件

我正在寻找播放列表中播放声音的快速编码,而不是作为资源添加到您的项目中的声音。 我主要find了NSURL(fileURLWithPath:NSBundle.mainBundle()。pathForResource(“sound_name”,ofType:“wav”))println(alertSound)的用法,但是为此你需要在你的包中包含声音文件。 但我找不到任何示例select通过iTunes购买的audio文件,并播放它们。 任何想法如何做到这一点? 我可以访问我的音乐层播放列表文件,并在我的应用程序中使用它们吗? 感谢任何代码行。 RPW

从NSData解码MP3文件

对于我的应用程序,我需要解码存储在NSData对象中的MP3文件。 出于安全原因,将NSData对象写入磁盘并使用系统URL引用重新打开它是不可取的,即使它只在本地存储一段时间。 我想利用扩展audio文件服务(或audio文件服务)来做到这一点,但是我无法获得只能在内存中存在的NSData的表示,这些audio文件服务可以读取这些表示。 编辑:我想解码的MP3数据,所以我可以访问线性PCMaudio样本进行操作。 从NSData对象播放不是一个问题。 我的代码如下: decryptedData; //an NSData object which has already been initialized const void *dataBytes = decryptedData.bytes; //pointer to the bytes in my NSData object //this creates a CFURLRef from the pointer to the byte data //I have printed out the resulting CFURL and have confirmed that it is indeed reading the […]

如何loggingvideo并保持音乐在后台播放?

对不起,如果这是重复的,但我找不到类似这样的问题。 我有一个自定义的AVFoundation制作的摄像机/录像机,我想知道如何在录制video的时候保持audio从其他应用程序运行,因为现在它会停止audio(甚至不会暂停),然后录制video 如果我正确思考,可以通过添加类似的东西来解决这个问题: [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];

实时audio处理,无输出

我正在寻找这个例子http://teragonaudio.com/article/How-to-do-do-realtime-recording-with-effect-processing-on-iOS.html 我想closures我的输出。 我尝试将kAudioSessionCategory_PlayAndRecord更改为kAudioSessionCategory_RecordAudio但这不起作用。 我也试图摆脱: if(AudioUnitSetProperty(*audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &streamDescription, sizeof(streamDescription)) != noErr) { return 1; } 以前我想从麦克风听到声音,但没有播放它。 但是,不pipe我的声音到达renderCallback方法的时候,都会有一个-50的错误。 当audio自动播放输出时,一切工作正常… 用代码更新: using namespace std; AudioUnit *audioUnit = NULL; float *convertedSampleBuffer = NULL; int initAudioSession() { audioUnit = (AudioUnit*)malloc(sizeof(AudioUnit)); if(AudioSessionInitialize(NULL, NULL, NULL, NULL) != noErr) { return 1; } if(AudioSessionSetActive(true) != noErr) { return 1; } UInt32 […]

mp3audio播放不适用于iOS上的Cordova 3.5

最近我把我们的iOS项目从cordova3.3升级到3.5。 mp3文件(以前下载到iOS标准文件夹中)将不能使用媒体API /插件播放。 这个代码已经在iOS上可靠地工作了很多版本,包括Cordova 3.3 … mp3文件已经被下载到标准的iOS应用“文档”文件夹中的一个名为“Downloads”的子目录中。 在XCode控制台中出现以下错误: 未知资源“文件://localhost/Users/weeasle/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/ {App-ID} /Documents/Downloads/testsound.mp3' 在我的代码中(在File Plugin API的几个代码块之后),我得到使用的目录:downloadDirFullPath = window.appRootDir.toURL(); 为了符合3.5的文件API的新变化,我最近从downloadDirFullPath = window.appRootDir.fullPath; Cordova 3.5的Media Plugin API是否打破了iOS App文档目录的audio播放? 或者我只是真的很累,失去了明显的东西…任何build议或信息非常感谢。 克里斯又名weeasle 20/6月14日更新:修复发现。 我现在可以得到我下载的.mp3在iOS Cordova 3.5上播放…显然,随着新的Cordova 3.5文件系统的entry.fullPath方法不再工作,并按照https://github.com entry.toURL()取代/apache/cordova-plugin-file/blob/master/doc/index.md 这在使用Cordova调用图像时工作正常,但是iOS上的媒体插件已经有一段时间了:对于声音播放,它不接受以file://开头的URL。它只接受像/ var这样的绝对path/移动/应用/ {GUID} /文档/ 答案和解决方法是使用从fileSystem.root.getDirectory返回的条目中调用的新的toInternalURL()方法。 我使用的确切的电话是downloadDirFullPath = window.appRootDir.toInternalURL(); (从fileSystem.root.getDirectory传递的条目中调用)。 这将返回:cdvfile:// localhost / persistent / Downloads /当预先挂载到.mp3或其他audio文件在iOS中成功播放时 这也适用于显示图像和媒体,所以这是一个单一的可靠的解决schemecordovaiOS 3.5及以上.. 这是迄今为止首选的解决scheme,因为它比使用相对path更安全(就像未来的苹果公司在iOS版本中发生重大的文件结构变化,文件访问可能中断一样)… 还有一点需要注意的是,除了上面的调用/方法,downloadDirName = window.appRootDir.name; 还设置cdvfile:// […]

无法使用AudioFileStreamOpen的AudioFileStream_PacketsProccallback中的AudioConverterFillComplexBuffer将MP3转换成PCM

我有一个AudioFileStream_PacketsProccallback设置在一个AudioFileStreamOpen处理转换audio数据包到PCM使用AudioConverterFillComplexBuffer 。 我遇到的问题是我调用AudioConverterFillComplexBuffer后得到一个-50 OSStatus(paramErr)。 下面是在AudioConverterFillComplexBuffer中使用的参数的一个片段,以及它们是如何制作的: audioConverterRef = AudioConverterRef() // AudioConvertInfo is a struct that contains information // for the converter regarding the number of packets and // which audiobuffer is being allocated convertInfo? = AudioConvertInfo(done: false, numberOfPackets: numberPackets, audioBuffer: buffer, packetDescriptions: packetDescriptions) var framesToDecode: UInt32 = pcmBufferTotalFrameCount! – end var localPcmAudioBuffer = AudioBuffer() localPcmAudioBuffer.mData = […]

用AVAudioEngine从AVAudioPCMBuffer播放audio

我有两个类, MicrophoneHandler和AudioPlayer 。 我设法使用AVCaptureSession在这里使用批准的答案来挖掘麦克风数据,并使用此函数将CMSampleBuffer转换为NSData : func sendDataToDelegate(buffer: CMSampleBuffer!) { let block = CMSampleBufferGetDataBuffer(buffer) var length = 0 var data: UnsafeMutablePointer<Int8> = nil var status = CMBlockBufferGetDataPointer(block!, 0, nil, &length, &data) // TODO: check for errors let result = NSData(bytesNoCopy: data, length: length, freeWhenDone: false) self.delegate.handleBuffer(result) } 现在,我想通过将上面生成的NSData转换为AVAudioPCMBuffer并使用AVAudioEngine来播放audio。 我的AudioPlayer类如下所示: var engine: AVAudioEngine! var playerNode: AVAudioPlayerNode! var […]