Ios разработка, как сгенерировать файл рингтона .band - PullRequest
0 голосов
/ 01 января 2019

Ну, одно из требований - сделать аудиофайлы, такие как mp3, caf и другие аудиофайлы, в мелодии звонка, но для этого нужно приложению библиотеки.Формат группы, чтобы открыть.Как преобразовать mp3, caf и другие аудио файлы в файлы группы?

NSData *data = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:model.fileurl]];
NSLog(@"The file is %lu bytes", (unsigned long)[data length]);
//从路径中获得完整的文件名 (带后缀)
NSString *fileName = [model.fileurl lastPathComponent];
// 获得文件名(不带后缀)
NSString *name = [fileName stringByDeletingPathExtension];
NSString *bellName = [NSString stringWithFormat:@"%@%@.band", folderTempName, name];

ExtAudioConverter* converter = [[ExtAudioConverter alloc] init];
                            converter.inputFile =  model.fileurl;
                            converter.outputFile = bellName;
                            converter.outputFormatID = kAudioFormatMPEGLayer3;
                            converter.outputFileType = kAudioFileMP3Type;
[converter convert:^(BOOL flag) {
    if (flag) {
        NSMutableArray *items = [[NSMutableArray alloc] initWithObjects:[NSURL fileURLWithPath:bellName], nil];
        UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];

        // 屏蔽AirDrop分享(需要屏蔽的内容)
        NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook,
                                                                    UIActivityTypePostToWeibo,
                                                                    UIActivityTypeMessage, UIActivityTypeMail,
                                                                    UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                                                    UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
                                                                    UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
                                                                    UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo,UIActivityTypeAirDrop,UIActivityTypeOpenInIBooks];
        controller.excludedActivityTypes = excludedActivities;

        UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(NSString *activityType,BOOL completed,NSArray *returnedItems,NSError *activityError)
        {
            NSLog(@"activityType :%@", activityType);
            if (completed)
            {
                NSLog(@"completed");
            }
            else
            {
                NSLog(@"cancel");
            }
        };

        // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用

             controller.completionWithItemsHandler = myBlock;
            [self presentViewController:controller animated:YES completion:nil];
        } else {
            [MBProgressHUD showErrorMessage:NSLocalizedString(@"Error making ring tone", nil)];
        }
    }];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...