Я успешно немедленно остановил воспроизведение звука с помощью:
-(void)stopAudio
{
@synchronized(audioLock) {
audioLock=[NSNumber numberWithBool:false];
OSStatus err;
err=AudioQueueReset (_audioQueue);
if (err != noErr)
{
NSLog(@"AudioQueueReset() error: %d", (int)err);
}
err=AudioQueueStop (_audioQueue, YES);
if (err != noErr)
{
NSLog(@"AudioQueueStop() error: %d", (int)err);
}
err=AudioQueueDispose (_audioQueue, YES);
if (err != noErr)
{
NSLog(@"AudioQueueDispose() error: %d", (int)err);
}
}
}
И в моем:
void audioCallback(void *custom_data, AudioQueueRef queue, AudioQueueBufferRef buffer)
Я добавляю больше вещей в свою очередь, только если:
myObject *weakSelf = (__bridge myObject *)custom_data;
@synchronized(weakSelf -> audioLock) {
if ([weakSelf -> audioLock boolValue]) {
Put_more_stuff_on_queue
}
В моем конкретном случае я воспроизводил аудио AAC-LC.
Файлы csproj на самом деле являются файлами MSBuild. Их xsd можно найти здесь:
%windir%\Microsoft.NET\Framework\[framework version]\Microsoft.Build.xsd
Мне удалось найти его в % VS2008% \ Xml \ Schemas \ 1033 \ MSBuild \ Microsoft.Build.Core.xsd
. Целевое пространство имен соответствует пространству имен файлов проекта, и структура выглядит правильно.
Файлы csproj являются файлами MSBuild, поэтому вы должны использовать схему для MSBuild, которая находится в:
%VS2008%\Xml\Schemas\1033\MSBuild\Microsoft.Build.Core.xsd