2012-02-17 72 views
0

我有一个谷歌TTS API的问题。 嗯,我认为,所有的一切都是好的,因为如果我使用我的桌面的路径,我在模拟器中运行应用程序,它创建与MP3文件。 问题是我无法重现它。 我没有错,但是我什么也听不到。我使用AVaudioPlayer。 这是我使用的代码:TTS谷歌API Xcode 4.x

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"file.mp3"]; 

NSString *text = @"You are one chromosome away from being a potato."; 
NSString *urlString = [NSString stringWithFormat:@"http://www.translate.google.com/translate_tts?tl=en&q=%@",text]; 
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease]; 
[request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" forHTTPHeaderField:@"User-Agent"]; 
NSURLResponse* response = nil; 
NSError* error = nil; 
NSData* data = [NSURLConnection sendSynchronousRequest:request 
            returningResponse:&response 
               error:&error]; 
[data writeToFile:path atomically:YES]; 

AVAudioPlayer *player; 
NSError  *err; 
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) 
{  
    player = [[AVAudioPlayer alloc] initWithContentsOfURL: 
       [NSURL fileURLWithPath:path] error:&err]; 
    player.volume = 0.4f; 
    [player prepareToPlay]; 
    [player setNumberOfLoops:0]; 
    [player play];  
} 

我从另一个计算器问题验证码:Text-to-speech on iPhone

回答

0

我认为问题是,AVAudioPlayer是不是一类变量。尝试推广它,然后再试一次。祝你好运