Tag: audio

当缓冲区大小很小时,audio队列播放速度过快

我能够使用audio文件服务+audio队列服务来播放和播放m4a文件。 文件的比特率信息由于文件types而不适用于audio队列。 下载完所有的audio数据包后,我将它们传送给播放器。 当我select32768或16384左右的缓冲区大小时,由于callback被调用的次数较less,而且每个缓冲区的大小都很大,所以似乎正在以正常速度播放。 问题是有时我必须播放小文件,但是当我select一个小缓冲区大小-512或1024或2048到8192时,audio播放速度非常快,偶尔会出现毛刺。 我知道在Ccallback调用objective-c函数不是一个好主意,但为了可读性和易用性,我这样做。 无论如何,我认为这不是问题。 // allocate the buffers and prime the queue with some data before starting AudioQueueBufferRef buffers[XMNumberPlaybackBuffers]; int i; for (i = 0; i < XMNumberPlaybackBuffers; ++i) { err=AudioQueueAllocateBuffer(queue, XMAQDefaultBufSize, &buffers[i]); if (err) { [self failWithErrorCode:err customError:AP_AUDIO_QUEUE_BUFFER_ALLOCATION_FAILED]; } @synchronized(self) { state=AP_WAITING_FOR_QUEUE_TO_START; } // manually invoke callback to fill buffers with […]

Core Audio(iOS 5.1)Reverb2属性不存在,错误代码为-10877

我正在玩苹果的示例项目“LoadPresetDemo”。 我已经将混响audio单元AudioUnit kAudioUnitSubType_Reverb2到graphics,这是唯一可用的iOS混响。 在CoreAudio头文件“AudioUnitParameters.h”中,它声明了Reverb2应该响应这些参数: enum { // Global, CrossFade, 0->100, 100 kReverb2Param_DryWetMix = 0, // Global, Decibels, -20->20, 0 kReverb2Param_Gain = 1, // Global, Secs, 0.0001->1.0, 0.008 kReverb2Param_MinDelayTime = 2, // Global, Secs, 0.0001->1.0, 0.050 kReverb2Param_MaxDelayTime = 3, // Global, Secs, 0.001->20.0, 1.0 kReverb2Param_DecayTimeAt0Hz = 4, // Global, Secs, 0.001->20.0, 0.5 kReverb2Param_DecayTimeAtNyquist = 5, // […]

MPNowPlayingInfoCenter是否与AVAudioPlayer兼容?

我开始玩AVAudioPlayer ,然后像这样设置nowPlaying字典: NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init]; MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc] initWithImage: [UIImage imagedNamed:@"AlbumArt"]]; [songInfo setObject:@"Audio Title" forKey:MPMediaItemPropertyTitle]; [songInfo setObject:@"Audio Author" forKey:MPMediaItemPropertyArtist]; [songInfo setObject:@"Audio Album" forKey:MPMediaItemPropertyAlbumTitle]; [songInfo setObject:albumArt forKey:MPMediaItemPropertyArtwork]; [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo]; locking屏幕始终显示一个暂停button。 我正确接收遥控器事件,并且可以通过遥控器事件切换播放/暂停,但即使在播放时,locking屏幕仍然显示“暂停”。 现在我看到了这个与MPMoviePlayerController的工作。 有人可以解释一下MPNowPlayingInfoCenter如何确定它是否应该显示播放或暂停button?

使用WebAudio API在iOS 7.1中变形的audio

在iOS 7.1上,当使用Web Audio API播放audio时,我总是发出嗡嗡/嘈杂/失真的声音 。 这听起来像是这样扭曲了 ,取而代之的是正常的 。 使用HTML5audio时,相同的文件是好的。 这一切在桌面上运行良好(Firefox,Chrome,Safari)。 编辑: audio在iOS模拟器iOS 7.1,8.1,8.2中失真。 嗡嗡声往往开始之前,我甚至回放任何东西。 在Chrome和Safari中,audio在运行iOS 7.1的物理iPhone上失真。 在Chrome和Safari中,运行iOS 8.1的物理iPhone上的audio效果都不错。 即:嗡嗡声在iOS 7.1上。 只要。 Howler.js不是问题。 问题仍然在那里使用纯JS像这样: var context; var sound; var extension = '.' + ( new Audio().canPlayType( 'audio/ogg' ) !== '' ? 'ogg' : 'mp3'); /** Test for WebAudio API support **/ try { // still needed […]

如何告诉MPNowPlayingInfoCenter是否正在播放或暂停音乐?

我似乎无法让iOS在远程audio控件中显示正确的播放/暂停button。 我收到远程控制事件并设置nowPlayingInfo字典的所有值。 一切工作正常,我甚至看到锁屏上的封面照片。 除了暂停/播放button。 即使我的AVAudioPlayer正在播放,它总是看起来像暂停。 无论播放状态如何,它都会发送一个暂停事件。 如何通知iOS AVAudioPlayer已暂停,现在应该在遥控器button栏中显示播放button?

为什么我暂停AVAudioPlayer时锁屏audio控制消失?

我正在使用AVAudioPlayer的实例来播放audio文件。 该应用程序被configuration为在后台播放audio,并设置适当的audio会话。 我也成功接收远程控制事件。 代码如下: #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController () @property (nonatomic) AVAudioPlayer *player; @end @implementation ViewController @synthesize player; – (BOOL)canBecomeFirstResponder { return YES; } – (void)viewDidLoad { [super viewDidLoad]; // Turn on remote control event delivery [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; // Set ourselves as the first responder [self becomeFirstResponder]; // Set the audio session […]

如何在按下button的情况下在swift 2中播放m4a文件?

当我触摸一个button时,如何播放audio文件,没有任何工作可以在网上find,因为它的速度很快。 我想要originalfunction中的audio代码。 import UIKit import AVFoundation class ViewController: UIViewController { @IBAction func original(sender: AnyObject) { } }

从Socket连接在iOS上播放audio

希望你能帮助我解决这个问题,我看到很多与此有关的问题,但是没有一个真正帮助我弄清楚我在这里做错了什么。 所以在Android上,我有一个AudioRecord,它正在loggingaudio并通过套接字连接将audio作为字节数组发送到客户端。 这部分在Android上非常简单,并且工作得很好。 当我开始使用iOS时,发现没有简单的方法可以解决这个问题,所以在经过两天的研究和封堵之后,玩这个就是我所得到的。 哪个仍然不能播放任何audio。 它启动时会产生噪音,但没有任何audio通过插口传输。 我确认套接字通过logging缓冲区数组中的每个元素来接收数据。 这里是我使用的所有代码,很多是从一堆网站重用,不能记住所有的链接。 (BTW使用AudioUnits) 首先,audio处理器:播放回叫 static OSStatus playbackCallback(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData) { /** This is the reference to the object who owns the callback. */ AudioProcessor *audioProcessor = (__bridge AudioProcessor*) inRefCon; // iterate over incoming stream an copy to output stream […]

使用Xamarin从iPhone中的麦克风stream式传输audio

使用AudioQueue和Monotouch静态声音录制演示如何使用Xamarin.iOS通过iPhone的麦克风将audio传输到AudioQueue。 我的问题是:我如何保持麦克风连续录音? 我基本上只要打开应用程序就保持麦克风打开,并不断捕捉audiostream(注意,我不想将stream保存到文件)。 在长时间的while循环里面?

AVAudioSession:某些蓝牙设备在我的应用程序上无法正常工作

我正在使用AVAudioSession开发一个快速的audio/video和文本聊天iOS应用程序。 每当我select使用某些蓝牙设备时,设备上播放的声音不是Appaudiostream。 他们只播放文本聊天库发送的系统声音,而不是发送/接收消息。 它不会发生在所有的蓝牙设备,其中一些一切正常。 内置麦克风和扬声器的应用程序也运行良好。 以下是我的class级pipe理设备中最重要的方法: class MyAudioSession { private var mAudioSession: AVAudioSession; init!() { self.mAudioSession = AVAudioSession.sharedInstance(); do { try self.mAudioSession.setActive(false); try self.mAudioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: .AllowBluetooth); try self.mAudioSession.setMode(AVAudioSessionModeVideoChat); try self.mAudioSession.setActive(true); } catch { return nil; } } func switchToDevice(device: AVAudioSessionPortDescription!) -> Bool { var ret = false; if (device != nil) { do { try […]