diff --git a/mini-program/src/components/ScriptAudioPlayer.vue b/mini-program/src/components/ScriptAudioPlayer.vue new file mode 100644 index 0000000..635de66 --- /dev/null +++ b/mini-program/src/components/ScriptAudioPlayer.vue @@ -0,0 +1,319 @@ + + + + + diff --git a/mini-program/src/pages/main/ScriptDetailView.vue b/mini-program/src/pages/main/ScriptDetailView.vue index f2f8182..30a757a 100644 --- a/mini-program/src/pages/main/ScriptDetailView.vue +++ b/mini-program/src/pages/main/ScriptDetailView.vue @@ -28,6 +28,7 @@ 字数 + @@ -61,6 +62,7 @@ import { computed, onMounted, ref } from 'vue' import { useAppStore } from '../../stores/app.js' import Markdown from '../../components/Markdown.vue' +import ScriptAudioPlayer from '../../components/ScriptAudioPlayer.vue' const store = useAppStore() const statusBarHeight = ref(20) diff --git a/mini-program/src/services/tts.js b/mini-program/src/services/tts.js new file mode 100644 index 0000000..87e68a4 --- /dev/null +++ b/mini-program/src/services/tts.js @@ -0,0 +1,30 @@ +import { get, post } from './request.js' + +const DEFAULT_SOURCE_TYPE = 'epic_script' +const DEFAULT_VOICE = 'default_zh_female' + +export const createTtsTask = ({ + sourceType = DEFAULT_SOURCE_TYPE, + sourceId, + voice = DEFAULT_VOICE +}) => { + return post('/tts/tasks', { sourceType, sourceId, voice }) +} + +export const getTtsTask = (id) => { + return get(`/tts/tasks/${id}`) +} + +export const getTtsTaskBySource = ({ + sourceType = DEFAULT_SOURCE_TYPE, + sourceId, + voice = DEFAULT_VOICE +}) => { + return get('/tts/tasks/by-source', { sourceType, sourceId, voice }) +} + +export default { + createTtsTask, + getTtsTask, + getTtsTaskBySource +}