AUGraph
İOS uygulamamda ses çalmak ve kaydetmek için Audio Units API ile çalışıyorum . Şimdi AUGraph
, aşağıdaki hatayla başlayamadığında nadir bir sorun yaşıyorum :
sonuç = kAUGraphErr_CannotDoInCurrentContext (-10863)
AUGraphStart
Ses çalma için ayarlanmış olanı aramaya çalıştığımızda hata tahmin edilemez bir şekilde oluştu :
(BOOL)startRendering
{
if (playing) {
return YES;
}
playing = YES;
if (NO == [self setupAudioForGraph:&au_play_graph playout:YES]) {
print_error("Failed to create play AUGraph",0);
playing = NO;
return NO;
}
//result = kAUGraphErr_CannotDoInCurrentContext (-10863)
OSStatus result = AUGraphStart(au_play_graph);
if (noErr != result) {
print_error("AUGraphStart", result);
playing = NO;
}
return playing;
}
İşte belgelerden elde ettiğimiz şey:
Oluşturma iş parçacığında dönmekten veya beklemekten kaçınmak için (kötü bir fikir!), AUGraph'a yapılan çağrıların çoğu şunu döndürebilir: kAUGraphErr_CannotDoInCurrentContext. Bu sonuç yalnızca bir AUGraph API'sini kendi oluşturma geri aramasından çağırdığınızda oluşturulur. Bu, ihtiyaç duyduğu kilidin o sırada başka bir iplik tarafından tutulduğu anlamına gelir . Bu sonuç kodunu görürseniz, genellikle işlemi tekrar deneyebilirsiniz - tipik olarak NEXT oluşturma döngüsü (bu arada bu arada kilit kaldırılabilir) veya bu çağrıyı uygulamanızdaki başka bir iş parçacığına devredebilirsiniz. Oluşturma iş parçacığını döndürmemeli veya uyku moduna geçirmemelisiniz.
Bu sonuç kodu yalnızca, diğer iş parçacığınızın (kilidi olan) AUGraph'a çağrısı tamamlanır tamamlanmaz geçecek bir geçici durumdur.
Benim durumumda, yeni başlıyorum, AUGraph
yeni ve yeni yaratılmış. Vakada nasıl hata ayıklayabilirim ve buradaki olası sorun ne olabilir?
setupAudioForGraph
? Önce grafiği AUGraphInitialize mi yaptınız?