Example #1
0
        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());
        }