Parcourir la source

更新讯飞语音库,修复IOS读取不到NSData的问题

i2edu il y a 5 ans
Parent
commit
eec50cc2f5

+ 21 - 21
.idea/libraries/Dart_SDK.xml

@@ -1,27 +1,27 @@
 <component name="libraryTable">
   <library name="Dart SDK">
     <CLASSES>
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/async" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/cli" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/collection" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/convert" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/core" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/developer" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/ffi" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/html" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/indexed_db" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/io" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/isolate" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/js" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/js_util" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/math" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/mirrors" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/svg" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/typed_data" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/wasm" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/web_audio" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/web_gl" />
-      <root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/dart-sdk/lib/web_sql" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/async" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/cli" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/collection" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/convert" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/core" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/developer" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/ffi" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/html" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/indexed_db" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/io" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/isolate" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/js" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/js_util" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/math" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/mirrors" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/svg" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/typed_data" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/wasm" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/web_audio" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/web_gl" />
+      <root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter/bin/cache/dart-sdk/lib/web_sql" />
     </CLASSES>
     <JAVADOC />
     <SOURCES />

+ 1 - 3
.idea/libraries/Flutter_Plugins.xml

@@ -1,8 +1,6 @@
 <component name="libraryTable">
   <library name="Flutter Plugins" type="FlutterPluginsLibraryType">
-    <CLASSES>
-      <root url="file://$PROJECT_DIR$" />
-    </CLASSES>
+    <CLASSES />
     <JAVADOC />
     <SOURCES />
   </library>

+ 28 - 380
.idea/workspace.xml

@@ -6,41 +6,19 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="91fb8cbe-3946-4eca-a4cf-05dab52b73c6" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/ios/Classes/Libraries/libai/aiengine.h" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/ios/Classes/Libraries/libai/aiengine.provision" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/ios/Classes/Libraries/libai/libaiengine.a" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/ios/Classes/Libraries/libai/aiengine.h" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/ios/Classes/Libraries/libai/aiengine.provision" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/ios/Classes/Libraries/libai/libaiengine.a" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Dart_SDK.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Dart_SDK.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlyContact.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlyIdentityResult.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlyIdentityVerifier.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlyIdentityVerifierDelegate.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlySpeechUnderstander.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlyTextUnderstander.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlyVerifierUtil.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Flutter_Plugins.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Flutter_Plugins.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/.idea/libraries/Dart_SDK.xml" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/.idea/libraries/Dart_SDK.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/.idea/vcs.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Podfile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Podfile.lock" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/pubspec.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/pubspec.lock" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/ios/Classes/SpeechPlugin.m" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/ios/Classes/SpeechPlugin.m" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/ios/speech_plugin.podspec" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/ios/speech_plugin.podspec" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/lib/speech_plugin.dart" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/lib/speech_plugin.dart" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/pubspec.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/pubspec.lock" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/speech_plugin.iml" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/speech_plugin.iml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/Podfile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/Podfile.lock" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/project.pbxproj" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/project.pbxproj" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/example/pubspec.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/pubspec.lock" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/ios/Classes/SpeechPlugin.m" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Classes/SpeechPlugin.m" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/ios/speech_plugin.podspec" beforeDir="false" afterPath="$PROJECT_DIR$/ios/speech_plugin.podspec" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/lib/speech_plugin.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/speech_plugin.dart" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/pubspec.lock" beforeDir="false" afterPath="$PROJECT_DIR$/pubspec.lock" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/speech_plugin.iml" beforeDir="false" afterPath="$PROJECT_DIR$/speech_plugin.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlyMSC.h" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlyMSC.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlySpeechConstant.h" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/Headers/IFlySpeechConstant.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/iflyMSC" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Frameworks/iflyMSC.framework/iflyMSC" afterDir="false" />
     </list>
-    <ignored path="$PROJECT_DIR$/.dart_tool/" />
-    <ignored path="$PROJECT_DIR$/.idea/" />
-    <ignored path="$PROJECT_DIR$/.pub/" />
-    <ignored path="$PROJECT_DIR$/build/" />
-    <ignored path="$PROJECT_DIR$/example/.pub/" />
-    <ignored path="$PROJECT_DIR$/example/build/" />
-    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -49,79 +27,6 @@
   <component name="DefaultGradleProjectSettings">
     <option name="isMigrated" value="true" />
   </component>
-  <component name="ExecutionTargetManager" SELECTED_TARGET="Pixel_2_API_29" />
-  <component name="FileEditorManager">
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/speech_plugin.dart">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="98">
-              <caret line="58" column="13" selection-start-line="58" selection-start-column="13" selection-end-line="58" selection-end-column="13" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/android/.gitignore">
-          <provider selected="true" editor-type-id="text-editor" />
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/android/src/main/kotlin/cn/i2edu/speech_plugin/SpeechPlugin.kt">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="228">
-              <caret line="152" column="24" selection-start-line="152" selection-start-column="24" selection-end-line="152" selection-end-column="24" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/android/src/main/kotlin/cn/i2edu/speech_plugin/audioUtils/bean/SimpleWord.kt">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="30">
-              <caret line="2" column="40" lean-forward="true" selection-start-line="2" selection-start-column="40" selection-end-line="2" selection-end-column="40" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/android/src/main/kotlin/cn/i2edu/speech_plugin/util/SmartOralAudioEvaluatorUtil.kt">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="217">
-              <caret line="95" column="38" lean-forward="true" selection-start-line="95" selection-start-column="38" selection-end-line="95" selection-end-column="38" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/ios/speech_plugin.podspec">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="330">
-              <caret line="22" column="56" selection-start-line="22" selection-start-column="56" selection-end-line="22" selection-end-column="56" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/ios/Classes/SpeechPlugin.m">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="1905">
-              <caret line="128" column="26" selection-start-line="128" selection-start-column="26" selection-end-line="128" selection-end-column="26" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/.gitignore">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="105">
-              <caret line="7" selection-start-line="7" selection-end-line="7" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
   <component name="FindInProjectRecents">
     <findStrings>
       <find>invokeMethod</find>
@@ -132,191 +37,32 @@
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
   </component>
-  <component name="IdeDocumentHistory">
-    <option name="CHANGED_PATHS">
-      <list>
-        <option value="$PROJECT_DIR$/lib/speech_plugin.dart" />
-        <option value="$PROJECT_DIR$/ios/speech_plugin.podspec" />
-      </list>
-    </option>
-  </component>
   <component name="ProjectFrameBounds">
     <option name="y" value="23" />
     <option name="width" value="1440" />
     <option name="height" value="877" />
   </component>
+  <component name="ProjectId" id="1ezB7ect1AUciGBonzlwLUuwnnV" />
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
-  <component name="ProjectView">
-    <navigator currentView="ProjectPane" proportions="" version="1">
-      <foldersAlwaysOnTop value="true" />
-    </navigator>
-    <panes>
-      <pane id="ProjectPane">
-        <subPane>
-          <expand>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="kotlin" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="kotlin" type="462c0819:PsiDirectoryNode" />
-              <item name="cn" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="kotlin" type="462c0819:PsiDirectoryNode" />
-              <item name="cn" type="462c0819:PsiDirectoryNode" />
-              <item name="i2edu" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="kotlin" type="462c0819:PsiDirectoryNode" />
-              <item name="cn" type="462c0819:PsiDirectoryNode" />
-              <item name="i2edu" type="462c0819:PsiDirectoryNode" />
-              <item name="speech_plugin" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="kotlin" type="462c0819:PsiDirectoryNode" />
-              <item name="cn" type="462c0819:PsiDirectoryNode" />
-              <item name="i2edu" type="462c0819:PsiDirectoryNode" />
-              <item name="speech_plugin" type="462c0819:PsiDirectoryNode" />
-              <item name="audioUtils" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="kotlin" type="462c0819:PsiDirectoryNode" />
-              <item name="cn" type="462c0819:PsiDirectoryNode" />
-              <item name="i2edu" type="462c0819:PsiDirectoryNode" />
-              <item name="speech_plugin" type="462c0819:PsiDirectoryNode" />
-              <item name="audioUtils" type="462c0819:PsiDirectoryNode" />
-              <item name="bean" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="kotlin" type="462c0819:PsiDirectoryNode" />
-              <item name="cn" type="462c0819:PsiDirectoryNode" />
-              <item name="i2edu" type="462c0819:PsiDirectoryNode" />
-              <item name="speech_plugin" type="462c0819:PsiDirectoryNode" />
-              <item name="model" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="kotlin" type="462c0819:PsiDirectoryNode" />
-              <item name="cn" type="462c0819:PsiDirectoryNode" />
-              <item name="i2edu" type="462c0819:PsiDirectoryNode" />
-              <item name="speech_plugin" type="462c0819:PsiDirectoryNode" />
-              <item name="util" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="ios" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="ios" type="462c0819:PsiDirectoryNode" />
-              <item name="Classes" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="ios" type="462c0819:PsiDirectoryNode" />
-              <item name="Frameworks" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="speech_lib" type="b2602c69:ProjectViewProjectNode" />
-              <item name="speech_lib" type="462c0819:PsiDirectoryNode" />
-              <item name="lib" type="462c0819:PsiDirectoryNode" />
-            </path>
-          </expand>
-          <select />
-        </subPane>
-      </pane>
-      <pane id="PackagesPane" />
-      <pane id="Scope" />
-    </panes>
+  <component name="ProjectViewState">
+    <option name="showExcludedFiles" value="true" />
+    <option name="showLibraryContents" value="true" />
   </component>
   <component name="PropertiesComponent">
     <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="dart.analysis.tool.window.force.activate" value="false" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/ios/Frameworks" />
     <property name="settings.editor.selected.configurable" value="flutter.settings" />
     <property name="show.migrate.to.gradle.popup" value="false" />
   </component>
   <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="$PROJECT_DIR$/ios/Frameworks" />
+    </key>
     <key name="MoveFile.RECENT_KEYS">
       <recent name="$PROJECT_DIR$/ios/Frameworks" />
     </key>
   </component>
-  <component name="RunDashboard">
-    <option name="ruleStates">
-      <list>
-        <RuleState>
-          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
-        </RuleState>
-        <RuleState>
-          <option name="name" value="StatusDashboardGroupingRule" />
-        </RuleState>
-      </list>
-    </option>
-  </component>
   <component name="SvnConfiguration">
     <configuration />
   </component>
@@ -330,112 +76,14 @@
     </task>
     <servers />
   </component>
-  <component name="ToolWindowManager">
-    <frame x="0" y="23" width="1440" height="877" extended-state="0" />
-    <editor active="true" />
-    <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.22246066" />
-      <window_info id="Captures" order="1" side_tool="true" />
-      <window_info id="Structure" order="2" side_tool="true" />
-      <window_info id="Image Layers" order="3" />
-      <window_info id="Designer" order="4" />
-      <window_info id="Build Variants" order="5" side_tool="true" />
-      <window_info id="Resources Explorer" order="6" />
-      <window_info id="Capture Tool" order="7" />
-      <window_info id="Favorites" order="8" side_tool="true" />
-      <window_info anchor="bottom" id="Dart Analysis" order="0" weight="0.32936078" />
-      <window_info anchor="bottom" id="Run" order="1" weight="0.329718" />
-      <window_info anchor="bottom" id="TODO" order="2" />
-      <window_info anchor="bottom" id="Android Profiler" order="3" show_stripe_button="false" />
-      <window_info active="true" anchor="bottom" id="Logcat" order="4" visible="true" weight="0.3286334" />
-      <window_info anchor="bottom" id="Debug" order="5" />
-      <window_info anchor="bottom" id="Terminal" order="6" visible="true" weight="0.3713911" />
-      <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
-      <window_info anchor="bottom" id="Flutter Performance" order="8" side_tool="true" />
-      <window_info anchor="bottom" id="Version Control" order="9" />
-      <window_info anchor="bottom" id="Messages" order="10" weight="0.17847769" />
-      <window_info anchor="right" id="Device File Explorer" order="0" side_tool="true" />
-      <window_info anchor="right" id="Capture Analysis" order="1" />
-      <window_info anchor="right" id="Theme Preview" order="2" />
-      <window_info anchor="right" id="Flutter Inspector" order="3" />
-      <window_info anchor="right" id="Flutter Outline" order="4" />
-      <window_info anchor="right" id="Palette&#9;" order="5" />
-    </layout>
-  </component>
-  <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/pubspec.yaml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="475">
-          <caret line="25" column="47" selection-start-line="25" selection-start-column="47" selection-end-line="25" selection-end-column="47" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/example/lib/main.dart">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="23">
-          <caret line="16" column="11" lean-forward="true" selection-start-line="16" selection-start-column="11" selection-end-line="16" selection-end-column="11" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://C:/flutter/flutter/packages/flutter/lib/src/services/platform_channel.dart" />
-    <entry file="file://$PROJECT_DIR$/ios/speech_plugin.podspec">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="330">
-          <caret line="22" column="56" selection-start-line="22" selection-start-column="56" selection-end-line="22" selection-end-column="56" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/ios/Classes/SpeechPlugin.m">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1905">
-          <caret line="128" column="26" selection-start-line="128" selection-start-column="26" selection-end-line="128" selection-end-column="26" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="105">
-          <caret line="7" selection-start-line="7" selection-end-line="7" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/android/src/main/java/com/chivox/AIEngine.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1332">
-          <caret line="2" column="19" selection-start-line="2" selection-start-column="19" selection-end-line="2" selection-end-column="19" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/lib/speech_plugin.dart">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="98">
-          <caret line="58" column="13" selection-start-line="58" selection-start-column="13" selection-end-line="58" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/android/.gitignore">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/android/src/main/kotlin/cn/i2edu/speech_plugin/util/SmartOralAudioEvaluatorUtil.kt">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="217">
-          <caret line="95" column="38" lean-forward="true" selection-start-line="95" selection-start-column="38" selection-end-line="95" selection-end-column="38" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/android/src/main/kotlin/cn/i2edu/speech_plugin/SpeechPlugin.kt">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="228">
-          <caret line="152" column="24" selection-start-line="152" selection-start-column="24" selection-end-line="152" selection-end-column="24" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/android/src/main/kotlin/cn/i2edu/speech_plugin/audioUtils/bean/SimpleWord.kt">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="30">
-          <caret line="2" column="40" lean-forward="true" selection-start-line="2" selection-start-column="40" selection-end-line="2" selection-end-column="40" />
-        </state>
-      </provider>
-    </entry>
+  <component name="WindowStateProjectService">
+    <state x="548" y="265" key="IDE.errors.dialog" timestamp="1595314489576">
+      <screen x="0" y="23" width="1920" height="985" />
+    </state>
+    <state x="548" y="265" key="IDE.errors.dialog/0.23.1920.985@0.23.1920.985" timestamp="1595314489576" />
+    <state x="461" y="154" key="SettingsEditor" timestamp="1595314442329">
+      <screen x="0" y="23" width="1920" height="985" />
+    </state>
+    <state x="461" y="154" key="SettingsEditor/0.23.1920.985@0.23.1920.985" timestamp="1595314442329" />
   </component>
 </project>

+ 1 - 1
example/.flutter-plugins-dependencies

@@ -1 +1 @@
-{"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"speech_plugin","dependencies":[]}]}
+{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"speech_plugin","path":"/Users/i2edu/Documents/workspace/speech_lib/","dependencies":[]}],"android":[{"name":"speech_plugin","path":"/Users/i2edu/Documents/workspace/speech_lib/","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"speech_plugin","dependencies":[]}],"date_created":"2020-07-21 14:54:19.561605","version":"1.17.0"}

+ 1 - 1
example/ios/Podfile.lock

@@ -19,4 +19,4 @@ SPEC CHECKSUMS:
 
 PODFILE CHECKSUM: 3dbe063e9c90a5d7c9e4e76e70a821b9e2c1d271
 
-COCOAPODS: 1.8.4
+COCOAPODS: 1.9.1

+ 1 - 13
example/ios/Runner.xcodeproj/project.pbxproj

@@ -9,11 +9,7 @@
 /* Begin PBXBuildFile section */
 		1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
 		3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
-		3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
-		3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		4E7EECE9383C572DE041AD20 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C1E6CD67FAE6488382D7C86E /* libPods-Runner.a */; };
-		9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
-		9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
 		97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
 		97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
@@ -28,8 +24,6 @@
 			dstPath = "";
 			dstSubfolderSpec = 10;
 			files = (
-				3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
-				9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
 			);
 			name = "Embed Frameworks";
 			runOnlyForDeploymentPostprocessing = 0;
@@ -40,7 +34,6 @@
 		1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
 		1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
 		3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
-		3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
 		6EBBD70825B0DB46C1295F01 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
 		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
 		7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
@@ -48,7 +41,6 @@
 		8E8F1967063E48A728361464 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
 		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
 		9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
-		9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
 		97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
 		97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
@@ -64,8 +56,6 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
-				3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
 				4E7EECE9383C572DE041AD20 /* libPods-Runner.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -86,9 +76,7 @@
 		9740EEB11CF90186004384FC /* Flutter */ = {
 			isa = PBXGroup;
 			children = (
-				3B80C3931E831B6300D905FE /* App.framework */,
 				3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
-				9740EEBA1CF902C7004384FC /* Flutter.framework */,
 				9740EEB21CF90195004384FC /* Debug.xcconfig */,
 				7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
 				9740EEB31CF90195004384FC /* Generated.xcconfig */,
@@ -233,7 +221,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
 		};
 		669486AE96A3269861E0886A /* [CP] Copy Pods Resources */ = {
 			isa = PBXShellScriptBuildPhase;

+ 37 - 44
example/pubspec.lock

@@ -5,63 +5,63 @@ packages:
     dependency: transitive
     description:
       name: archive
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.11"
+    version: "2.0.13"
   args:
     dependency: transitive
     description:
       name: args
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.5.2"
+    version: "1.6.0"
   async:
     dependency: transitive
     description:
       name: async
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.4.0"
+    version: "2.4.1"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.0.5"
+    version: "2.0.0"
   charcode:
     dependency: transitive
     description:
       name: charcode
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.1.2"
+    version: "1.1.3"
   collection:
     dependency: transitive
     description:
       name: collection
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.14.11"
+    version: "1.14.12"
   convert:
     dependency: transitive
     description:
       name: convert
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.1"
   crypto:
     dependency: transitive
     description:
       name: crypto
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.3"
+    version: "2.1.4"
   cupertino_icons:
     dependency: "direct main"
     description:
       name: cupertino_icons
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.1.3"
   flutter:
@@ -78,51 +78,44 @@ packages:
     dependency: transitive
     description:
       name: image
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.4"
+    version: "2.1.12"
   matcher:
     dependency: transitive
     description:
       name: matcher
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.12.6"
   meta:
     dependency: transitive
     description:
       name: meta
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.8"
   path:
     dependency: transitive
     description:
       name: path
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.6.4"
-  pedantic:
-    dependency: transitive
-    description:
-      name: pedantic
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.8.0+1"
   petitparser:
     dependency: transitive
     description:
       name: petitparser
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.4.0"
   quiver:
     dependency: transitive
     description:
       name: quiver
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.5"
+    version: "2.1.3"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -132,9 +125,9 @@ packages:
     dependency: transitive
     description:
       name: source_span
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.5.5"
+    version: "1.7.0"
   speech_plugin:
     dependency: "direct dev"
     description:
@@ -146,57 +139,57 @@ packages:
     dependency: transitive
     description:
       name: stack_trace
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.9.3"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.0"
   string_scanner:
     dependency: transitive
     description:
       name: string_scanner
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.0.5"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.0"
   test_api:
     dependency: transitive
     description:
       name: test_api
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.2.11"
+    version: "0.2.15"
   typed_data:
     dependency: transitive
     description:
       name: typed_data
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.6"
   vector_math:
     dependency: transitive
     description:
       name: vector_math
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.8"
   xml:
     dependency: transitive
     description:
       name: xml
-      url: "https://pub.dev"
+      url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "3.5.0"
+    version: "3.6.1"
 sdks:
-  dart: ">=2.4.0 <3.0.0"
+  dart: ">=2.6.0 <3.0.0"

+ 24 - 0
ios/Frameworks/iflyMSC.framework/Headers/IFlyContact.h

@@ -0,0 +1,24 @@
+//
+//  IFlyContact.h
+//  msc
+//
+//  Created by ypzhao on 13-3-1.
+//  Copyright (c) 2013年 IFLYTEK. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/*!
+ *  此接口为获取通信录中的联系人。<br>
+ *  获取联系人是为了在进行语音识别时(sms)能更好的识别出您说的人名,联系人上传是属于个性化的一部分。
+ */
+@interface IFlyContact : NSObject
+
+/*!
+ *  获取联系人。<br>
+ *  调用此方法需要添加 AddressBook.framework 和 Contacts.framework到工程中,调用此方法后可以直接将通信录中的联系人转化为语音云识别的数据结构。您可以将获取的数据通过IFlyDataUploader类,上传到语音云,我们只获取通信录中的人名。
+ *
+ *  @return  返回联系人信息
+ */
+- (NSString *) contact;
+@end

+ 37 - 0
ios/Frameworks/iflyMSC.framework/Headers/IFlyIdentityResult.h

@@ -0,0 +1,37 @@
+//
+//  IFlyIdentityResult.h
+//  IFlyMSC
+//
+//  Created by 张剑 on 15/5/14.
+//  Copyright (c) 2015年 iflytek. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ *  身份验证结果类
+ */
+@interface IFlyIdentityResult : NSObject
+
+/**
+ *  json字符串格式结果
+ */
+@property(nonatomic,retain)NSString* result;
+
+/**
+ *  创建身份验证结果类实例
+ *
+ *  @param jsonString json字符串
+ *
+ *  @return 身份验证结果类实例
+ */
++(instancetype)identityResultWithString:(NSString*)jsonString;
+
+/**
+ *  返回字典格式的结果
+ *
+ *  @return 字典格式的结果
+ */
+-(NSDictionary*)dictionaryResults;
+
+@end

+ 176 - 0
ios/Frameworks/iflyMSC.framework/Headers/IFlyIdentityVerifier.h

@@ -0,0 +1,176 @@
+//
+//  IFlyIdentityVerifier.h
+//  IFlyMSC
+//
+//  Created by 张剑 on 15/4/22.
+//  Copyright (c) 2015年 iflytek. All rights reserved.
+//
+
+
+#import <Foundation/Foundation.h>
+#import "IFlyIdentityVerifierDelegate.h"
+
+/**
+ *  身份验证功能类
+ */
+@interface IFlyIdentityVerifier : NSObject
+
+/*!
+ *  设置委托对象
+ */
+@property (nonatomic, assign) id <IFlyIdentityVerifierDelegate> delegate;
+
+/**
+ *  返回身份验证对象的单例
+ *
+ *  @return 身份验证对象的单例
+ */
++ (instancetype) sharedInstance;
+
+/**
+ *  销毁身份验证对象单例。
+ *
+ *  @return 成功返回YES,失败返回NO。
+ */
++ (void)purgeSharedInstance;
+
+/**
+ *  设置参数
+ *
+ *  @param value 参数值
+ *  @param key   参数名
+ *
+ *  @return 设置的参数和取值正确返回YES,失败返回NO
+ */
+- (BOOL)setParameter:(NSString *)value forKey:(NSString *)key;
+
+/**
+ *  开始会话
+ *  在这之后会开始各项业务。
+ */
+- (void)startWorking;
+
+/*
+ *  | ------------- |-----------------------------------------------------------
+ *  | ifr 参数       | 描述
+ *  | ------------- |-----------------------------------------------------------
+ *  | data_format   |数据格式:即图片格式,支持jpg(默认),gif
+ *  | ------------- |-----------------------------------------------------------
+ *  | data_encoding |数据压缩编码:即图片压缩编码,支持raw(不压缩,默认值)
+ *  | ------------- |-----------------------------------------------------------
+ *  | wtt           |等待超时时间: 支持大于0的整数,默认为3000ms
+ *  | ------------- |-----------------------------------------------------------
+ *  | ivp 参数       | 描述
+ *  | ------------- |-----------------------------------------------------------
+ *  | rgn           |训练次数:取值2~9.无默认值,必须明确指定。
+ *  | ------------- |-----------------------------------------------------------
+ *  |               |声纹确认门限值,验证得分>=tsd验证通过,否则验证失败(该参数目前不支持,
+ *  | tsd           |作为保留参数。)却只范围:0~100.
+ *  | ------------- |-----------------------------------------------------------
+ *  | ptxt          |密码文本。从服务端下载,比如数字密码所需要的数字串。
+ *  | ------------- |-----------------------------------------------------------
+ *  | pwdt          |密码类型。取值:1(文本密码),2(自由说),3(数字密码).
+ *  | ------------- |-----------------------------------------------------------
+ *  | fin           |取消注册。取值:0(不取消,即不生效),1(取消本次注册).
+ *  | ------------- |-----------------------------------------------------------
+ *  | wtt           |等待超时时间:描述客户端等待结果的超时时间
+ *  | ------------- |-----------------------------------------------------------
+ *  | vad_enable    |VAD功能开关。是否启用VAD处理,取值:1(开启,默认),0(不开启)。
+ *  | ------------- |-----------------------------------------------------------
+ *  |               |头部静音最大长度。如果静音长度超过此值,则认为用户此次无有效音频输入。
+ *  | vad_bos       |此参数仅在打开VAD功能时生效。(云端暂时没有)。取值:0~30000ms,
+ *  |               |默认为10000ms
+ *  | ------------- |-----------------------------------------------------------
+ *  |               |尾部静音长度。如果尾部静音长度超过了此值,则认为音频已经结束。
+ *  |               |此参数仅在打开VAD功能时生效。(云端暂时没有)。取值:0~30000ms,
+ *  | vad_eos       |默认为2000ms
+ *  | ------------- |-----------------------------------------------------------
+ *  | data_encoding |数据压缩编码,音频压缩编码。
+ *  | ------------- |-----------------------------------------------------------
+ *  | data_format   |在声纹业务中为音频采样率,取值:16000(默认),8000
+ *  | ------------- |-----------------------------------------------------------
+ *  | ipt 参数       | 描述
+ *  | ------------- |-----------------------------------------------------------
+ *  | scope         |操作范围 person,group
+ *  | ------------- |-----------------------------------------------------------
+ *  | group_id      |指定鉴别的组数字或者字符串,唯一值 不为空
+ *  | ------------- |-----------------------------------------------------------
+ *  |               |组名称 “”或者不能包含^@,&=*'"等非法字符,且长度不得超过255.
+ *  | group_name    |此参数可以为空,对于group_name约束不在云端控制,由前段控制
+ *  | ------------- |-----------------------------------------------------------
+ *  | topc          |[top candidates],返回得分最高的候选人数目 取值1-5 默认是1.
+ *  |               | 可以开放由用户设置,最大topc值为5
+ *  | ------------- |-----------------------------------------------------------
+ *
+ */
+
+/**
+ *  写入子业务数据、或者进行模型操作、下载密码。
+ *
+ *  @param ssub   子业务名
+ *  @param data   数据
+ *  @param offset 偏移量
+ *  @param length 长度
+ *  @param params 参数
+ *  <table>
+ *  <thead>
+ *  <tr><th>*ifr参数</th><th><em>描述</em></th></tr>
+ *  </thead>
+ *  <tbody>
+ *  <tr><td>data_format</td><td>数据格式:即图片格式,支持jpg(默认),gif</td></tr>
+ *  <tr><td>data_encoding</td><td>数据压缩编码:即图片压缩编码,支持raw(不压缩,默认值)</td></tr>
+ *  <tr><td>wtt</td><td>等待超时时间: 支持大于0的整数,默认为3000ms</td></tr>
+ *  </tbody>
+ *  <thead>
+ *  <tr><th>*ivp参数</th><th><em>描述</em></th></tr>
+ *  </thead>
+ *  <tbody>
+ *  <tr><td>rgn</td><td>训练次数:取值2~9.无默认值,必须明确指定。</td></tr>
+ *  <tr><td>tsd</td><td>声纹确认门限值,验证得分>=tsd验证通过,否则验证失败(该参数目前不支持,作为保留参数。)却只范围:0~100.</td></tr>
+ *  <tr><td>ptxt</td><td>密码文本。从服务端下载,比如数字密码所需要的数字串。</td></tr>
+ *  <tr><td>pwdt</td><td>密码类型。取值:1(文本密码),2(自由说),3(数字密码).</td></tr>
+ *  <tr><td>fin</td><td>取消注册。取值:0(不取消,即不生效),1(取消本次注册).</td></tr>
+ *  <tr><td>wtt</td><td>等待超时时间:描述客户端等待结果的超时时间.</td></tr>
+ *  <tr><td>vad_enable</td><td>VAD功能开关。是否启用VAD处理,取值:1(开启,默认),0(不开启)。</td></tr>
+ *  <tr><td>vad_bos</td><td>头部静音最大长度。如果静音长度超过此值,则认为用户此次无有效音频输入。</br>此参数仅在打开VAD功能时生效。(云端暂时没有)。</br>取值:0~30000ms,默认为10000ms</td></tr>
+ *  <tr><td>vad_eos</td><td>尾部静音长度。如果尾部静音长度超过了此值,则认为音频已经结束。</br>此参数仅在打开VAD功能时生效。(云端暂时没有)。</br>取值:0~30000ms,默认为2000ms</td></tr>
+ *  <tr><td>data_encoding</td><td>数据压缩编码,音频压缩编码。</td></tr>
+ *  <tr><td>data_format</td><td>在声纹业务中为音频采样率,取值:16000(默认),8000</td></tr>
+ *  </tbody>
+ *  <thead>
+ *  <tr><th>*ipt参数</th><th><em>描述</em></th></tr>
+ *  </thead>
+ *  <tbody>
+ *  <tr><td>scope</td><td>操作范围 person,group</td></tr>
+ *  <tr><td>group_id</td><td>指定鉴别的组数字或者字符串,唯一值 不为空</td></tr>
+ *  <tr><td>group_name</td><td>组名称 “”或者不能包含^@,&=*'"等非法字符,且长度不得超过255.此参数可以为空,对于group_name约束不在云端控制,由前段控制</td></tr>
+  *  <tr><td>topc</td><td>组名称[top candidates],返回得分最高的候选人数目 取值1-5 默认是1.可以开放由用户设置,最大topc值为5</td></tr>
+ *  </tbody>
+ *  </table>
+ */
+-(void)write:(NSString*)ssub data:(NSData*)data offset:(int)offset length:(int)length withParams:(NSString*)params;
+
+/**
+ *  停止子业务数据写入
+ *
+ *  @param ssub 子业务名:ivp,ifr,ipt
+ */
+-(void)stopWrite:(NSString*)ssub;
+
+/**
+ *  执行模型查询、删除和声纹密码下载等操作
+ *  *注意此方法不能与startWorking方法同时使用。
+ *
+ *  @param ssub   子业务类型、可选值:ivp(声纹)、ifr(人脸)、ipt(鉴别)
+ *  @param cmd    操作命令,可选值:query、delete、download、add
+ *  @param params 子业务参数,参见write:data:offset:length:withParams:
+ */
+-(void)execute:(NSString*)ssub cmd:(NSString*)cmd params:(NSString*)params;
+
+/**
+ *  取消本次会话
+ */
+- (void)cancel;
+
+@end
+

+ 47 - 0
ios/Frameworks/iflyMSC.framework/Headers/IFlyIdentityVerifierDelegate.h

@@ -0,0 +1,47 @@
+//
+//  IFlyIdentityVerifierDelegate.h
+//  IFlyMSC
+//
+//  Created by 张剑 on 15/4/22.
+//  Copyright (c) 2015年 iflytek. All rights reserved.
+//
+
+
+
+#import <Foundation/Foundation.h>
+
+@class IFlySpeechError;
+@class IFlyIdentityResult;
+
+/**
+ *  身份验证功能类回调
+ */
+@protocol IFlyIdentityVerifierDelegate <NSObject>
+
+/*!
+ *  错误回调
+ *
+ *  @param error 错误描述类
+ */
+- (void)onCompleted:(IFlySpeechError *)error;
+
+/*!
+ *  结果回调
+ *
+ *  @param results -[out] 结果。
+ *  @param isLast  -[out] 是否最后一条结果
+ */
+- (void)onResults:(IFlyIdentityResult *)results isLast:(BOOL)isLast;
+
+/**
+ *  扩展接口,用于抛出音量和vad_eos消息
+ *
+ *  @param eventType 消息类型
+ *  @param arg1      eventType为 Event_volume 时 arg1为音量值
+ *  @param arg2      参数2
+ *  @param obj       扩展参数
+ */
+- (void)onEvent:(int)eventType arg1:(int)arg1 arg2:(int)arg2 extra:(id)obj;
+
+@end
+

+ 4 - 2
ios/Frameworks/iflyMSC.framework/Headers/IFlyMSC.h

@@ -12,6 +12,9 @@
 #import "IFlyAudioSession.h"
 #import "IFlyDataUploader.h"
 #import "IFlyDebugLog.h"
+#import "IFlyIdentityVerifier.h"
+#import "IFlyIdentityResult.h"
+#import "IFlyIdentityVerifierDelegate.h"
 #import "IFlyISVDelegate.h"
 #import "IFlyISVRecognizer.h"
 #import "IFlyRecognizerView.h"
@@ -30,9 +33,8 @@
 #import "IFlySpeechUtility.h"
 #import "IFlyUserWords.h"
 #import "IFlyPcmRecorder.h"
+#import "IFlyVerifierUtil.h"
 #import "IFlyVoiceWakeuper.h"
 #import "IFlyVoiceWakeuperDelegate.h"
 
-
-
 #endif

+ 42 - 0
ios/Frameworks/iflyMSC.framework/Headers/IFlySpeechConstant.h

@@ -91,6 +91,41 @@
  */
 +(NSString*)LANGUAGE_ENGLISH;
 
+/*!
+ *  语言
+ *
+ *  @return 俄语value
+ */
++(NSString*)LANGUAGE_RUSSIAN;
+
+/*!
+ *  语言
+ *
+ *  @return 日语value
+ */
++(NSString*)LANGUAGE_JAPANESE;
+
+/*!
+ *  语言
+ *
+ *  @return 法语value
+ */
++(NSString*)LANGUAGE_FRENCH;
+
+/*!
+ *  语言
+ *
+ *  @return 西班牙语value
+ */
++(NSString*)LANGUAGE_SPANISH;
+
+/*!
+ *  语言
+ *
+ *  @return 韩语value
+ */
++(NSString*)LANGUAGE_KOREAN;
+
 /*!
  *  返回结果的数据格式,可设置为json,xml,plain,默认为json。
  *
@@ -196,6 +231,13 @@
  */
 +(NSString*)ENGINE_TYPE;
 
+/*!
+ *  本地xtts识别引擎。
+ *
+ *  @return 本地识别引擎value。
+ */
++(NSString*)TYPE_LOCAL_XTTS;
+
 /*!
  *  本地识别引擎。
  *

+ 132 - 0
ios/Frameworks/iflyMSC.framework/Headers/IFlySpeechUnderstander.h

@@ -0,0 +1,132 @@
+//
+//  IFlySpeechUnderstander.h
+//  MSC
+//
+//  Created by iflytek on 2014-03-12.
+//  Copyright (c) 2014年 iflytek. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class IFlySpeechError;
+@protocol IFlySpeechRecognizerDelegate;
+
+/*!
+ *  语义理解接口
+ */
+@interface IFlySpeechUnderstander : NSObject
+
+/*!
+ *  是否正在语义理解
+ */
+@property (readonly)  BOOL isUnderstanding;
+
+/*!
+ *  设置委托对象
+ */
+@property(nonatomic,retain) id<IFlySpeechRecognizerDelegate> delegate ;
+
+/*!
+ *  创建语义理解对象的单例
+ *
+ *  @return 语义理解对象
+ */
++(instancetype) sharedInstance;
+
+/*!
+ *  开始义理解
+ *
+ *  同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,请在onCompleted回调返回后请求下一路回话。
+ *
+ *  @return 成功返回YES,失败返回NO
+ */
+- (BOOL) startListening;
+
+/*!
+ *  停止录音<br>
+ *  调用此函数会停止录音,并开始进行语义理解
+ */
+- (void) stopListening;
+
+/*!
+ *  取消本次会话
+ */
+- (void) cancel;
+
+/*
+ *  | ------------- |-----------------------------------------------------------
+ *  | 参数           | 描述
+ *  | ------------- |-----------------------------------------------------------
+ *  | domain        |应用的领域: 取值为:iat、search、video、poi、music、asr;
+ *  |               |           iat:普通文本听写;
+ *  |               |        search:热词搜索;
+ *  |               |         video:视频音乐搜索;
+ *  |               |           asr:关键词识别;
+ *  | ------------- |-----------------------------------------------------------
+ *  | vad_bos       |前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
+ *  |               |          engine指定iat识别默认值为5000;
+ *  |               |          其他情况默认值为 4000,范围 0-10000。
+ *  | ------------- |-----------------------------------------------------------
+ *  | vad_eos       |后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,
+ *  |               |          自动停止录音;单位:ms;
+ *  |               |          sms 识别默认值为 1800;
+ *  |               |          其他默认值为 700,范围 0-10000。
+ *  | ------------- |-----------------------------------------------------------
+ *  | sample_rate   |采样率:目前支持的采样率设置有 16000 和 8000。
+ *  | ------------- |-----------------------------------------------------------
+ *  | asr_ptt       |标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。
+ *  | ------------- |-----------------------------------------------------------
+ *  | result_type   |返回结果的数据格式: 可设置为json,xml,plain,默认为json。
+ *  | ------------- |-----------------------------------------------------------
+ *  | grammarID     |识别的语法id: 只针对 domain 设置为”asr”的应用。
+ *  | ------------- |-----------------------------------------------------------
+ *  | asr_audio_path|音频文件名: 设置此参数后,将会自动保存识别的录音文件。
+ *  |               |          路径为Documents/(指定值)。
+ *  |               |          不设置或者设置为nil,则不保存音频。
+ *  | ------------- |-----------------------------------------------------------
+ *  | params        |扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。
+ *  | ------------- |-----------------------------------------------------------
+ *
+ */
+
+/*!
+ *  设置语义理解引擎的参数
+ *
+ *  语义理解的引擎参数(key)取值如下:
+ *
+ *  | 参数             | 描述                                                  |
+ *  |-----------------|-------------------------------------------------------|
+ *  | domain          | 应用的领域: 取值为:iat、search、video、poi、music、asr;<br>iat:普通文本听写;<br>search:热词搜索;<br>video:视频音乐搜索;<br>asr:关键词识别;|
+ *  | vad_bos         | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;<br>engine指定iat识别默认值为5000;<br>其他情况默认值为 4000,范围 0-10000。|
+ *  | vad_eos         | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms;<br>sms 识别默认值为 1800;<br>其他默认值为 700,范围 0-10000。|
+ *  | sample_rate     | 采样率:目前支持的采样率设置有 16000 和 8000。|
+ *  | asr_ptt         | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。|
+ *  | result_type     | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。|
+ *  | grammarID       | 识别的语法id: 只针对 domain 设置为”asr”的应用。|
+ *  | asr_audio_path  | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。<br>路径为Documents/(指定值)。<br>不设置或者设置为nil,则不保存音频。|
+ *  | params          | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。|
+ *
+ *  @param value 参数对应的取值
+ *  @param key   语义理解引擎参数
+ *
+ *  @return 成功返回YES;失败返回NO
+ */
+-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key;
+
+/*!
+ *  写入音频流
+ *
+ *  @param audioData 音频数据
+ *
+ *  @return 写入成功返回YES,写入失败返回NO
+ */
+- (BOOL) writeAudio:(NSData *) audioData;
+
+/*!
+ *  销毁语义理解对象。
+ *
+ *  @return 成功返回YES;失败返回NO
+ */
+- (BOOL) destroy;
+
+@end

+ 57 - 0
ios/Frameworks/iflyMSC.framework/Headers/IFlyTextUnderstander.h

@@ -0,0 +1,57 @@
+//
+//  TextUnderstand.h
+//  MSCDemo
+//
+//  Created by iflytek on 4/24/14.
+//  Copyright (c) 2014 iflytek. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class IFlySpeechError;
+
+/*!
+ *  文本转语义完成回调函数
+ *
+ *  @param result 成功,返回文本语义理解结果
+ *  @param error  错误描述
+ */
+typedef void(^IFlyUnderstandTextCompletionHandler)(NSString* result, IFlySpeechError * error);
+
+/*!
+ *  文本转语义类
+ */
+@interface IFlyTextUnderstander : NSObject
+
+/*!
+ *  是否正在文本转语义
+ */
+@property (readonly, atomic) __block  BOOL isUnderstanding;
+
+/*!
+ *  文本转语义接口<br>
+ *  输入文本内容,获取语义理解结果
+ *
+ *  @param text              输入的文本内容
+ *  @param completionHandler 文本转语义完成回调函数
+ *
+ *  @return 错误码
+ */
+-(int) understandText:(NSString*)text withCompletionHandler:(IFlyUnderstandTextCompletionHandler) completionHandler;
+
+/*!
+ *  设置文本转语义参数
+ *
+ *  @param value 参数对应的取值
+ *  @param key   文本转语义参数参数
+ *
+ *  @return 成功返回YES,失败返回NO
+ */
+-(BOOL) setParameter:(NSString *) value forKey:(NSString*)key;
+
+/*!
+ *  取消本次会话
+ */
+-(void)cancel;
+
+@end

+ 39 - 0
ios/Frameworks/iflyMSC.framework/Headers/IFlyVerifierUtil.h

@@ -0,0 +1,39 @@
+//
+//  IFlyVerifierUtil.h
+//  IFlyMSC
+//
+//  Created by 张剑 on 15/4/28.
+//  Copyright (c) 2015年 iflytek. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+/**
+ *  身份验证工具类
+ */
+@interface IFlyVerifierUtil : NSObject
+
+#pragma mark - ISV
+
+/**
+ *  返回定长的随机数字字符串(不包含数字1,而且2和5不邻接)
+ *
+ *  @param length 随机字符串长度
+ *
+ *  @return 随机字符串
+ */
++(NSString*)generateNumberPassword:(int)length;
+
+
+#pragma mark - Face
+/**
+ *  ARGB彩图转灰度图,Detector和Alignment需要灰度图的输入
+ *
+ *  @param sourceImage ARGB彩图
+ *
+ *  @return 灰度图
+ */
++ (UIImage*)ARGBToGray:(UIImage*)sourceImage;
+
+@end

BIN
ios/Frameworks/iflyMSC.framework/iflyMSC


+ 1 - 0
speech_plugin.iml

@@ -16,5 +16,6 @@
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="Dart SDK" level="project" />
     <orderEntry type="library" name="Flutter Plugins" level="project" />
+    <orderEntry type="library" name="Dart Packages" level="project" />
   </component>
 </module>