Tôi hiện đang phát triển một ứng dụng hỗ trợ ghi âm trong ứng dụng. Người dùng có thể nhận được một bảng nhìn tiêu chuẩn về các tệp âm thanh được lưu cục bộ mà anh/cô ấy đã ghi lại thông qua ứng dụng hoặc nhấn nút để đến chế độ xem bản ghi mới, từ đó có thể ghi lại một phiên âm thanh mới. được lưu vào hộp cát ứng dụng. Bây giờ chức năng này hoạt động tốt hầu hết thời gian. Tôi có thể ghi tập tin mới và chơi chúng ra khỏi ứng dụng, nhưng tại thời điểm ngẫu nhiên ghi âm thanh sẽ thất bại để bắt đầu ghi âm trong phương pháp này:Phương thức ghi AVAudioRecorder trả về NO vào các thời điểm ngẫu nhiên
-(void) startRecording
{
if (!isRecording)
{
isRecording = YES;
BOOL recordingSucess = [audioRecorder record];
if (recordingSucess)
NSLog(@"WE STARTED THE RECORDING!");
else
NSLog(@"WE DID NOT START THE RECORDING!");
// Start the timer
recordTiming = [NSDate date];
timeCheck = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timeCheck) userInfo:nil repeats:YES]
}
Đó là, NSLog sẽ in ra “Chúng tôi không bắt đầu ghi âm ”, chỉ ra rằng nó không thể bắt đầu ghi âm. Điều này dẫn đến một tệp âm thanh trống vẫn được lưu vào ứng dụng với kích thước tệp không đổi chính xác là 4096 byte. Đây là cách các đối tượng ghi âm thanh được khởi tạo:
-(id) initWithContentURL:(NSURL *)contentURL
{
self = [super init];
if (self)
{
NSLog(@"Initializing audio recorder!");
// Specific settings for the audio recording
NSDictionary *recordSettings = [NSDictionary
dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderAudioQualityKey,
[NSNumber numberWithInt:8],
AVEncoderBitRateKey,
[NSNumber numberWithInt: 2],
AVNumberOfChannelsKey,
[NSNumber numberWithFloat:22000.0],
AVSampleRateKey,
nil];
NSError *error = nil;
audioRecorder = [[AVAudioRecorder alloc] initWithURL:contentURL settings:recordSettings error:&error];
audioRecorder.delegate = self;
}
Ngoài ra còn có kiểm tra NSLog đó kiểm tra để xem nếu lỗi là con số không hay không, vì vậy vào thời điểm này tôi chắc chắn rằng việc khởi tạo dường như không Thất bại. Chính xác những gì có thể khiến phương pháp ghi lại thất bại vào thời điểm dường như ngẫu nhiên, trong khi nó hoạt động hoàn toàn tốt ở hầu hết các thời điểm khác?
Tôi sẽ thử cách này và quay lại. Chỉ cần kiểm tra nó đủ lâu để đảm bảo lỗi biến mất – Luffen
Điều này đã hiệu quả, cảm ơn bạn! :) – Luffen
@Luffen Rất vui khi được. Đối với 4096, tôi cho rằng đó là một phần tiêu đề của một tập tin phương tiện truyền thông đã được ghi vào đĩa như một sự chuẩn bị, nhưng việc ghi không thành công và phần dữ liệu của tập tin không được lấp đầy. –