更改建议语言不起作用

Changing advice language doesn't work

我是 Skobbler SDK 的新手,通过 Swift 演示 + 有据可查的教程 (http://developer.skobbler.com/getting-started/ios#sec01)

进行学习

但是,我仍然无法使用他们的说明配置建议语言设置...

这是我的代码:

let settings = SKAdvisorSettings()
    settings.advisorVoice =  "fr"
    settings.language  = SKAdvisorLanguage.FR
    settings.advisorType = SKAdvisorType.AudioFiles
    settings.resourcesPath = NSBundle.mainBundle().resourcePath! + "/SKMaps.bundle/AdvisorConfigs/Languages"

事件定义为:

 func routingService(routingService: SKRoutingService!, didChangeCurrentAdvice currentAdvice: SKRouteAdvice!, isLastAdvice: Bool) {

    NSLog("New advice "+currentAdvice.adviceInstruction)

}

Si 我得到 "in 90 meters turn right " 例如。

顺便说一句,没有播放任何音频文件

你能帮帮我吗:)?提前谢谢你

好的,我通过替换发现了我的错误:

  settings.advisorType = SKAdvisorType.AudioFiles

  settings.advisorType = SKAdvisorType.TextToSpeech

但是我仍然不知道如何使用预先录制的文件...即使有“在教程中使用预先录制的文件...

您是否将设置设置为 SKRoutingServiceadvisorConfigurationSettings

[SKRoutingService sharedInstance].advisorConfigurationSettings = advisorSettings;

您还必须像这样设置音频文件的路径:

NSBundle* advisorResourcesBundle = [NSBundle bundleWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"SKAdvisorResources.bundle"]];
NSString* soundFilesFolder = [advisorResourcesBundle pathForResource:@"Languages" ofType:@""];
NSString* audioFilesFolderPath = [NSString stringWithFormat:@"%@/%@/sound_files",soundFilesFolder,userLanguageCode];
[AudioService sharedInstance].audioFilesFolderPath = audioFilesFolderPath;

userLanguageCode 在你的情况下会是 "fr"

应该 "play the audio advice"(在 AudioService.m 中)的代码中存在错误 - .mp3 文件的名称未正确构建。

我已经通过进行以下更改解决了这个问题:

func playAudioFile(audioFileName: String) { 
    var soundFilePath: String = audioFilesFolderPath + "/" + audioFileName 
    soundFilePath = soundFilePath + ".mp3" 

    if !NSFileManager.defaultManager().fileExistsAtPath(soundFilePath) 
    { 
        return 
    } 
    else 
    { 
        audioPlayer = try? AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: soundFilePath), fileTypeHint: nil) 
        audioPlayer.delegate = self 
        audioPlayer.play() 
    } 

} 

这仅影响 swift 演示,将在下一次更新中修复