Changeset 35413 for main/trunk
- Timestamp:
- 2021-09-16T17:00:27+12:00 (3 years ago)
- Location:
- main/trunk/model-interfaces-dev/atea/korero-maori-asr/src
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/components/TranscriptionItem.vue
r35409 r35413 97 97 import TranscriptionItemEditor, { getWords } from "./TranscriptionItemEditor.vue" 98 98 import { TranscriptionViewModel, PlaybackState } from "../main"; 99 import Util from "../js/Util" 99 100 100 101 export default { … … 172 173 173 174 for (const word of getWords(transcription)) { 174 contents += getTime(word.startTime) + " --> " + getTime(word.endTime) + "\n"; 175 const startTime = Util.formatSecondsTimeString(word.startTime, true); 176 const endTime = Util.formatSecondsTimeString(word.endTime, true); 177 178 contents += startTime + " --> " + endTime + "\n"; 175 179 contents += "- " + word.word + "\n\n"; 176 180 } 177 181 178 182 return contents; 179 180 function getTime(seconds) {181 const hours = (seconds / 3600) | 0;182 const minutes = ((seconds - (hours * 60)) / 60) | 0;183 const actualSeconds = seconds - (minutes * 60);184 185 let result = hours.toLocaleString("en-US", { maximumFractionDigits: 0, minimumIntegerDigits: 2 });186 result += ":" + minutes.toLocaleString("en-US", { maximumFractionDigits: 0, minimumIntegerDigits: 2 });187 result += ":" + actualSeconds.toLocaleString("en-US", { minimumFractionDigits: 3, maximumFractionDigis: 3, minimumIntegerDigits: 2 });188 189 return result;190 }191 183 } 192 184 </script> -
main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/components/TranscriptionItemEditor.vue
r35412 r35413 2 2 <div> 3 3 <div class="editor-controls"> 4 < input type="range" class="slider-continuous" />4 <audio-time-bar v-model="currentPlaybackTime" :audio-length="2" /> 5 5 6 6 <toggle-button v-model="enableEditing"> … … 12 12 <ul class="list-view" v-if="!enableEditing"> 13 13 <li v-for="word in words" :key="word.id" class="word-container" @click="playAudio(word.startTime)"> 14 15 16 14 <span class="word-highlight word" :class="{ 'word-highlight-applied': word.shouldHighlight }"> 15 {{ word.word }} 16 </span> 17 17 </li> 18 18 </ul> … … 79 79 import { mapState } from "vuex"; 80 80 import { TranscriptionViewModel, PlaybackState } from "../main"; 81 import AudioTimeBar from "./AudioTimeBar.vue" 81 82 import Util from "../js/Util"; 82 83 … … 111 112 export default { 112 113 name: "TranscriptionItemEditor", 114 components: { 115 AudioTimeBar 116 }, 113 117 props: { 114 118 transcription: TranscriptionViewModel -
main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/js/Util.js
r35355 r35413 43 43 this.lut[d3 & 0xff] + this.lut[d3 >> 8 & 0xff] + this.lut[d3 >> 16 & 0xff] + this.lut[d3 >> 24 & 0xff]; 44 44 } 45 46 /** 47 * Formats a number of seconds into a time string. 48 * @param {Number} seconds The number of seconds. 49 * @param {Boolean} includeHoursIfNone Defines whether to include the hours component if it is empty. 50 * @returns {String} The formatted time string. 51 */ 52 static formatSecondsTimeString(seconds, includeHoursIfNone) { 53 const hours = (seconds / 3600) | 0; 54 const minutes = ((seconds - (hours * 60)) / 60) | 0; 55 const actualSeconds = seconds - (minutes * 60); 56 57 let result = ""; 58 59 if (includeHoursIfNone) { 60 result = hours.toLocaleString("en-US", { maximumFractionDigits: 0, minimumIntegerDigits: 2 }) + ":"; 61 } 62 else if (!includeHoursIfNone && hours > 0) { 63 result = hours.toLocaleString("en-US", { maximumFractionDigits: 0, minimumIntegerDigits: 2 }) + ":"; 64 } 65 66 result += minutes.toLocaleString("en-US", { maximumFractionDigits: 0, minimumIntegerDigits: 2 }); 67 result += ":" + actualSeconds.toLocaleString("en-US", { minimumFractionDigits: 3, maximumFractionDigis: 3, minimumIntegerDigits: 2 }); 68 69 return result; 70 } 45 71 }
Note:
See TracChangeset
for help on using the changeset viewer.