ifish/Ifish/controllers/IfishTabControllers/消息/IfishIMFiles/Sessions/ViewController/Audio/NTESAudio2TextViewController.m

119 lines
3.9 KiB
Objective-C

//
// NTESAudio2TextViewController.m
// NIM
//
// Created by amao on 7/10/15.
// Copyright (c) 2015 Netease. All rights reserved.
//
#import "NTESAudio2TextViewController.h"
#import "Toast+UIView.h"
#import "SVProgressHUD.h"
#import "UIView+NTES.h"
#import "IfishSessionViewController.h"
//#import "NTESMainTabController.h"
@interface NTESAudio2TextViewController ()
@property (weak, nonatomic) IBOutlet UITextView *textView;
@property (strong, nonatomic) NIMAudioToTextOption *option;
@property (strong, nonatomic) NIMMessage *message;
@end
@implementation NTESAudio2TextViewController
- (instancetype)initWithMessage:(NIMMessage *)message
{
if (self = [super initWithNibName:@"NTESAudio2TextViewController"
bundle:nil])
{
NIMAudioToTextOption *option = [[NIMAudioToTextOption alloc] init];
option.url = [(NIMAudioObject *)message.messageObject url];
option.filepath = [(NIMAudioObject *)message.messageObject path];
_option = option;
_message = message;
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
[SVProgressHUD showWithStatus:@"正在转换"];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hide)];
[self.textView addGestureRecognizer:tap];
__weak typeof(self) weakSelf = self;
[[[NIMSDK sharedSDK] mediaManager] transAudioToText:_option
result:^(NSError *error, NSString *text) {
[SVProgressHUD dismiss];
weakSelf.cancelBtn.hidden = YES;
[weakSelf show:error
text:text];
if (!error) {
weakSelf.message.isPlayed = YES;
}else{
NSLog(@"audio 2 text error, %@",error);
[weakSelf.textView removeFromSuperview];
[weakSelf.view addSubview:weakSelf.errorTipView];
}
}];
[_textView setEditable:NO];
}
- (void)viewDidLayoutSubviews{
CGRect rect = CGRectApplyAffineTransform(self.view.frame, self.view.transform);
self.errorTipView.top = rect.size.height * .33f;
self.errorTipView.centerX = rect.size.width * .5f;
}
- (void)show:(NSError *)error
text:(NSString *)text
{
if (error) {
[self.view makeToast:NSLocalizedString(@"转换失败", nil)
];
}
else
{
_textView.text = text;
[_textView sizeToFit];
if (self.textView.height + self.textView.top > self.view.height) {
self.textView.height = self.view.height - self.textView.top;
self.textView.scrollEnabled = YES;
}else{
self.textView.scrollEnabled = NO;
}
}
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
[self hide];
}
- (void)hide{
[SVProgressHUD dismiss];
void (^handler)(void) = self.completeHandler;
[self dismissViewControllerAnimated:NO
completion:^{
if (handler) {
handler();
}
}];
}
- (IBAction)cancelTrans:(id)sender{
[SVProgressHUD dismiss];
[self dismissViewControllerAnimated:NO
completion:nil];
}
- (BOOL)shouldAutorotate{
return NO;
}
@end