internal async static Task <IVoicePlayer> VoicePlayerFactory(string voicePackageUrl) { // Get file name var packageFileName = ExtractFileNameFromUrl(voicePackageUrl); IStorageItem file = await ApplicationData.Current.LocalFolder.TryGetItemAsync($"{AppConsts.VoiceAssetsFolderPath}{packageFileName}\\voice.json"); if (file == null) { var vp = new VoicePlayerGenerated(); vp.Say("Error: We could not load the Voice Package"); return(vp); } StorageFolder folder = await ApplicationData.Current.LocalFolder.GetFolderAsync($"{AppConsts.VoiceAssetsFolderPath}{packageFileName}\\"); var jsonstring = await FileIO.ReadTextAsync(((StorageFile)file)); JsonObject ja = JsonValue.Parse(jsonstring).GetObject(); var voicetype = ja.GetNamedString("Type", ""); if (voicetype == "wav") { return(new VoicePlayer(ja, folder)); } return(new VoicePlayerGenerated()); }