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

Objective-C

Войти
Регистрация
Восстановить пароль
 
Ivaner00
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 35
#1

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

17.11.2015, 13:33. Просмотров 276. Ответов 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

в общем, путь куда сохранить передается верный, но сохранить пытается не туда
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2015, 13:33     Сохранение файлов, Entitlements
Посмотрите здесь:

Совмещение С++ файлов и файлов Objective-C - Objective-C
мне нужно реализовать этот алгоритм http://recog.ru/blog/opencv/76.html в xCode. Сегментация с помощью opencv.framework. Я никогда не...

Сохранение - Objective-C
как сделать сохранение...-что бы после остановки симмулятора-работа не сбрасывалась, а сохранялась и при новом запуске просто продолжала...

Сохранение файлов - C#
Здравствуйте. У меня на форме есть кнопка которая вызывает OpenFileDialog, и label. После выбора любого файла, например который...

Сохранение файлов - C++ Builder
Все добрый день =) Скажите, как правильно использовать memo и SaveToFile, что бы взятый текст из memo, можно было поделить на определенный...

Не сохранение файлов - Администрирование Windows
Здравствуйте!!! у меня такой вопрос можно ли сделать так, чтобы после перезагрузки файлы которые создавали или скачивали юзеры не...

Сохранение файлов. - Visual C++
Пару дней назад начал изучать C++ (пользусь MS Visual Studio 2008 Pro). До этого изучал Delphi ,у меня там всё легко получалось и поэтому...

Сохранение файлов - Delphi
Здраствуйте. Столкнулся с задачей последовательного сохранения, например: save0, save1 и так далее. Как можно такое реализовать?

Сохранение файлов - C# WPF
Добрый день. при нажатии на кнопку происходит сохранение определенного файла. теперь вопрос, предположим в папке уже есть файл1, как...

Сохранение файлов - C#
Здравствуйте! Я открываю файл и работаю с ним StreamReader tr = new StreamReader(@&quot;d:\Programm\inp.txt&quot;); Потом записываю в другой...

Сохранение файлов - C++ Builder
Здравствуйте. Я С++ знаю достаточно плохо, но и не совсем чайник. Подскажите, пожалуйста, возможно ли сохранить файл, имеющий определенную...

Сохранение txt файлов - Visual Basic .NET
Здрасте всем) Напишите пожалуйста код программы, чтобы сохранялся txt-файл только без диалогового окна(т.е. не как в &quot;Сохранить как&quot;)....

Сохранение mp3 файлов - Видеопрограммы
Качаю с нета аудио файлы,они сохраняются как обычный файл. Что сделать,чтоб они сохранялись в MP3?????:help::help::help::help::help::help:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru