Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Сохранение файлов, Entitlements - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Спрятать вьюшку http://www.cyberforum.ru/objective-c/thread1579971.html
Здравствуйте. Как можно спрятать вьюшку совсем т.е. не просто убрать ее видимость но и освободить занимаемое ей место (аналог view.setVisibility(View.GONE); из андроид)? Пробовал так self.frame =...
Objective-C Вертикальный список вьюх разной высоты Привет, Вобще вопрос по OS X, но не нашел раздела. Извините. Нужно сделать динамический (генерится програмно) вертикальный список из вьюх содержищих NSCollectionView разной высоты. Пробовал... http://www.cyberforum.ru/objective-c/thread1578784.html
Objective-C О написании чистого кода
Вообщем, такая проблема. Мне не нравится подобные нагромождения из if-ов, добавления и удаления оверлеев, бесконечных диалоговых окон: UIView *overlay = initWithFrame:self.view.frame]; ...
Objective-C Facebook api xcode 6.3
Делаю как все описанно в документации. Редактирую info.plist , импортирую <FBSDKCoreKit/FBSDKCoreKit.h> и <FBSDKLoginKit/FBSDKLoginKit.h>, если запустить, то все работает, а если начать прописывать...
Objective-C Парсинг JSON из локального файла http://www.cyberforum.ru/objective-c/thread1570741.html
Доброго времени суток! У меня есть локальный JSON файл в проекте и мне надо из него достать данные. но почему-то, когда я пытаюсь вывести эти данные в консоль у меня пишет "(null)" в консоли, вместо...
Objective-C Системные настройки звука Доброго времени, кто может помочь. Нужно в osx, из приложения изменить звук уведомления, может сто подсказать? подробнее

Показать сообщение отдельно
Ivaner00
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 35

Сохранение файлов, Entitlements - Objective-C

17.11.2015, 13:33. Просмотров 285. Ответов 0
Метки (Все метки)

Доброго дня. Возникла такая проблема, связанная с сохранением пользовательских файлов в osx. заключается она в том, что при аппа не может сохранить записанный с микрофона звук.

Правила в ентайтлменте:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.device.microphone</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
    <key>com.apple.security.app-sandbox</key>
    <true/>
</dict>
</plist>
Вызов диалога :
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 NSSavePanel *panel = [NSSavePanel savePanel];
        NSDate *nowDate=[NSDate date];
        NSCalendar *calendar=[[NSLocale currentLocale]objectForKey:NSLocaleCalendar];
        NSDateComponents *components = [calendar components:(NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitSecond) fromDate:nowDate];
        NSString *fileName=[NSString stringWithFormat:@"My_Sound_%ld%ld%ld_%ld%ld%ld",[components day],[components month],[components year],[components hour],[components minute],[components second]];
        [panel setNameFieldStringValue:fileName];
        NSString * documentFolderPath = [NSSearchPathForDirectoriesInDomains(NSMusicDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        documentFolderPathStop=documentFolderPath;
        [panel setDirectoryURL:[NSURL fileURLWithPath:documentFolderPath]];
     
        [panel beginSheetModalForWindow:self.window
                      completionHandler:^(NSInteger result) {
                          if(result==NSFileHandlingPanelOKButton)
                          {
                             
                      
                              
                             
                              NSString * path=[NSString stringWithFormat:@"%@/%@.wav",documentFolderPath,[[panel URL]lastPathComponent]];
                              NSURL *outputFileURL=[NSURL fileURLWithPath:path];
                              NSLog(@"PATH %@",[outputFileURL path]);
                  
                             
                                  if([fm fileExistsAtPath:path])
                                  {
                                      
                                      NSAlert *alert =[[NSAlert alloc]init];
                                      [alert addButtonWithTitle:@"OK"];
                                      [alert addButtonWithTitle:@"Cancel"];
                                      [alert setMessageText:@"File is exist"];
                                      [alert setInformativeText:@"File is exist"];
                                      [alert setAlertStyle:NSWarningAlertStyle];
                                      if([alert runModal]==NSAlertFirstButtonReturn)
                                      {
                                          [fm removeItemAtPath:[outputFileURL path] error:nil];
                                      }
                                      else
                                      {
                                          return;
                                      }
                                      
                                  }
                                  
                                  [[Audio sharedManager]startRecord:path];
                                  [self.recSound setImage:[NSImage imageNamed:@"Btn_rec_p"]];
                                  PlayList *pl=[[PlayList alloc]init];
                                  [pl readPlayList];
                                  [pl setKey:[NSString stringWithFormat:@"%@/%@",[panel nameFieldStringValue],path]];
                                  [pl setPath:path];
                                  [pl saveItemPlaylist:pl];
                              
                                  recFlag=1;
                              
 
                          }
                      }];
 
        
    }
    else{
        [[Audio sharedManager]stopRecord];
        [self.recSound setImage:[NSImage imageNamed:@"Btn_rec_n"]];
        //[self.stopRecSound setImage:[NSImage imageNamed:@"Btn_stop_p"]];
        NSNotificationCenter *nc=[NSNotificationCenter defaultCenter];
       // [fm moveItemAtURL:[NSURL fileURLWithPath:documentFolderPathStop] toURL:[NSURL fileURLWithPath:pathStop] error:nil];
        [nc postNotificationName:@"ReloadTable" object:@"reload"];
        recFlag=0;
 
       }
}
Сама запись:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  
 
    
    NSDictionary *recordSetting = [[NSDictionary alloc] initWithObjectsAndKeys:
                                   [NSNumber numberWithFloat: 8000.0],AVSampleRateKey,
                                   [NSNumber numberWithInt: kAudioFormatLinearPCM],AVFormatIDKey,// kAudioFormatLinearPCM
                                   [NSNumber numberWithInt:16],AVLinearPCMBitDepthKey,
                                   [NSNumber numberWithInt: 2],AVNumberOfChannelsKey,
                                   [NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey,
                                   [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
                                   [NSNumber numberWithInt: AVAudioQualityMedium],AVEncoderAudioQualityKey,nil];
    
    NSError *error;
    NSURL *url=[[NSURL alloc]initFileURLWithPath:AudioName];
    m_recoder = [[AVAudioRecorder alloc]initWithURL:url settings:recordSetting error:&error];
 //   NSFileManager *fm=[NSFileManager defaultManager];
   // [fm createFileAtPath:[AudioName path] contents:nil attributes:nil];
    NSLog(@"Значение в методе записи %@",AudioName );
    if(error){
        NSLog(@"Error init recorder:%@",error.description);
        
    }
    else{
//        NSFileManager *fm=[NSFileManager defaultManager];
//        [fm createFileAtPath:[AudioName path] contents:nil attributes:nil];
        
        [m_recoder setDelegate:self];
        [m_recoder prepareToRecord];
        [m_recoder setMeteringEnabled:YES];
        [m_recoder record];
        
    }
в логах пишет:

17.11.15 16:32:43,740 Metal School: Let's Rock[3415]: PATH /Users/user/Library/Containers/mobi.musicparadise.MetalSchoolLetsRockpy/Data/Music/My_Sound_17112015_163242.wav
17.11.15 16:32:43,843 Metal School: Let's Rock[3415]: Значение в методе записи /Users/user/Library/Containers/mobi.musicparadise.MetalSchoolLetsRockpy/Data/Music/My_Sound_17112015_163242.wav
17.11.15 16:32:43,000 kernel[0]: Sandbox: Metal School: Le(3415) deny(1) file-write-create /Users/user/Music/My_Sound_17112015_163242.wav
17.11.15 16:32:43,000 kernel[0]: Sandbox: Metal School: Le(3415) deny(1) file-write-create /Users/user/Music/My_Sound_17112015_163242.wav
17.11.15 16:32:43,878 Metal School: Let's Rock[3415]: /Users/user/Library/Containers/mobi.musicparadise.MetalSchoolLetsRockpy/Data/Music/My_Sound_17112015_161637.wav

в общем, путь куда сохранить передается верный, но сохранить пытается не туда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru