AVAudioPlayer и NSUserDefaults - PullRequest
       1

AVAudioPlayer и NSUserDefaults

3 голосов
/ 08 декабря 2011
[PlaySound stop];        
[PlaySound prepareToPlay];        
[[NSUserDefaults standardUserDefaults] synchronize];
text = [[NSUserDefaults standardUserDefaults] stringForKey:@"defaulttext"];
NSLog(@"%@",text);
BOOL loop = [prefs boolForKey:@"switch"];
NSLog(@" %d",loop);
do {
    [PlaySound play];
} while (loop ==YES);

С этим кодом я сталкиваюсь с двумя основными проблемами.

1) Эта функция вызывается при нажатии кнопки ... Я назначаю аудиопроигрыватель для этой функции,Всякий раз, когда вызывается эта функция, я вызываю функцию остановки на аудиоплеере, но она не останавливается, и одновременно воспроизводятся два звука.

2) Мои настройки по умолчанию не регистрируются правильно.И строка, и bool показывают nil в консоли.

У меня есть добавленный пакет настроек в моем приложении.

Редактировать: Остальная часть метода

NSUInteger selectedRow= [SoundPicker selectedRowInComponent:0];
NSString *userchoice =[self pickerView:SoundPicker titleForRow:selectedRow forComponent:0];
NSString *soundpath = [[NSBundle mainBundle] pathForResource:userchoice ofType:@"wav"];
NSURL *fileURl = [[NSURL alloc] initFileURLWithPath:soundpath];
NSError **error = nil;
PlayFartSound = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURl error:error];

Я отсортировалпроблема аудио плеера.Может кто-нибудь, пожалуйста, помогите на NSUserDefaults.

В моем списке настроек root у меня есть текстовое поле с идентификатором имени name_preference, поэтому я поместил это в код:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

text = [defaults stringForKey:@"name_preference"];
NSLog(@"%@ abc",text);

Журнал(null) abc?[Я установил значение по умолчанию hello в plist]

1 Ответ

0 голосов
/ 28 февраля 2012

Как вы устанавливаете значения по умолчанию в ваших NSUserDefaults?Вы говорите, что у вас есть значения по умолчанию в plist, но когда вы загружаете этот plist в NSUserDefaults?

Чтобы установить значения NSUserDefaults по умолчанию, вам нужно вызывать это где-то в начале вашей программы, в идеале где-то вродеapplicationDidFinishLaunching

[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];

Где 'defaults' - это словарь настроек по умолчанию, возможно загруженный из списка.

...