暗号化が新しく、RNCryptorで録音を暗号化しようとしています。ファイルは適切に暗号化されますが、復号化後、作成されたNSDataによってAVAudioPlayerの初期化が失敗します。 (空)initializeAudioPlayer {iOS-RNCryptor録音あり
NSData *recording = [self decryptFilePathFromDocumentsFolder:_fileNameTextField.text];
if(!audioPlayer)
{
NSError *error=nil;
audioPlayer = [[AVAudioPlayer alloc]
initWithData:recording fileTypeHint:@".m4a" error:&error];
if (error)
NSLog(@"Error: %@", [error localizedDescription]);
else
私は何を知っていない - 私はAVAudioPlayerの初期化が... ある
...暗号化と復号化に
- (void)renameFileInDocumentsFolder:(NSString *)oldFilename withNewName:(NSString *)newFilename
{
NSFileManager *filemgr;
NSString *oldPath = [self getFilePathFromDocumentsFolder:oldFilename];
filemgr = [NSFileManager defaultManager];
NSData *data = [filemgr contentsAtPath:oldPath];
NSString *destPath = [[oldPath stringByDeletingLastPathComponent] stringByAppendingPathComponent:[newFilename stringByAppendingString:@".m4a"]];
NSLog(@"DEST:%@", destPath);
NSError *error;
NSData *encryptedData = [RNEncryptor encryptData:data
withSettings:kRNCryptorAES256Settings
password:@"ABC123"
error:&error];
[encryptedData writeToFile:destPath atomically:YES];
[filemgr removeItemAtPath:oldPath error:&error];
}
-(NSData *)decryptFilePathFromDocumentsFolder:(NSString *)filename
{
AudioRecorderAppDelegate *appDelegate=[AudioRecorderAppDelegate sharedDelegate];
_cacheDirectory = [[[appDelegate applicationCacheDirectory]path]stringByAppendingPathComponent:@"Recordings"];
// NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSString *filePath = [_cacheDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.m4a", filename]];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSData *decData = [RNDecryptor decryptData:data withPassword:@"ABC123" error:&error];
return decData;
}
をしている使用している方法私は間違っているか、またはRNCryptorがオーディオファイルを暗号化することさえ意図されていても、どんな助けでも大歓迎です。
いくつかのテストを実行して、 'decryptFilePathFromDocumentsFolder'から返された' NSData'が元のデータと一致するかどうかを確認しましたか? – rmaddy
あなたのオーディオプレーヤーを確認する必要がありますか?暗号化/復号化を行わないとコードは機能しますか? – rmaddy
はい、暗号化を解除した後のNSDataは暗号化前のものと一致し、オーディオプレーヤーは暗号化なしでうまく動作しますので、何がうまくいかないのですか? –