更改建议语言不起作用
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
但是我仍然不知道如何使用预先录制的文件...即使有“在教程中使用预先录制的文件...
您是否将设置设置为 SKRoutingService
的 advisorConfigurationSettings
?
[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 演示,将在下一次更新中修复
我是 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
但是我仍然不知道如何使用预先录制的文件...即使有“在教程中使用预先录制的文件...
您是否将设置设置为 SKRoutingService
的 advisorConfigurationSettings
?
[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 演示,将在下一次更新中修复