chore: audio file .m4a support
This commit is contained in:
@@ -14,11 +14,11 @@
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
bottom: 30px;
|
||||
right: 0;
|
||||
width: 100px;
|
||||
height: 60px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: -18px;
|
||||
width: 80px;
|
||||
height: 185px;
|
||||
|
||||
&:hover {
|
||||
.pagination {
|
||||
|
||||
@@ -45,6 +45,7 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
const loadMoreDone = useRef(false);
|
||||
const pageRef = useRef<any>(page);
|
||||
const totalPageRef = useRef<any>(totalPage);
|
||||
const isLoadingMoreRef = useRef(false);
|
||||
|
||||
useImperativeHandle(ref, () => ({
|
||||
abort() {
|
||||
@@ -79,6 +80,7 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
|
||||
const debounceLoading = _.debounce(() => {
|
||||
setLoading(false);
|
||||
isLoadingMoreRef.current = false;
|
||||
}, 200);
|
||||
|
||||
const isClean = useCallback((input: string) => {
|
||||
@@ -91,8 +93,9 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
const getLastPage = (data: string) => {
|
||||
const list = _.split(data.trim(), '\n');
|
||||
let result = '';
|
||||
console.log('getlastPage===', list.length, enableScorllLoad, pageSize);
|
||||
setLoading(true);
|
||||
if (isLoadingMoreRef.current) {
|
||||
setLoading(true);
|
||||
}
|
||||
if (!enableScorllLoad) {
|
||||
result = list.join('\n');
|
||||
} else if (list.length <= pageSize) {
|
||||
@@ -142,7 +145,7 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
const start = (newPage - 1) * pageSize;
|
||||
const end = newPage * pageSize;
|
||||
const prePage = list.slice(start, end).join('\n');
|
||||
console.log('prePage===', newPage);
|
||||
|
||||
setPage(() => newPage);
|
||||
setScrollPos(['bottom', newPage]);
|
||||
pageRef.current = newPage;
|
||||
@@ -160,7 +163,7 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
const start = (newPage - 1) * pageSize;
|
||||
const end = newPage * pageSize;
|
||||
const nextPage = list.slice(start, end).join('\n');
|
||||
console.log('nextPage===', newPage);
|
||||
|
||||
setPage(() => newPage);
|
||||
setScrollPos(['top', newPage]);
|
||||
pageRef.current = newPage;
|
||||
@@ -241,6 +244,7 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
tail.current = undefined;
|
||||
createChunkConnection();
|
||||
loadMoreDone.current = true;
|
||||
isLoadingMoreRef.current = true;
|
||||
} else if (isTop && page <= totalPage && page > 1) {
|
||||
// getPrePage();
|
||||
} else if (isBottom && page < totalPage) {
|
||||
|
||||
@@ -24,7 +24,7 @@ const UploadAudio: React.FC<UploadAudioProps> = (props) => {
|
||||
);
|
||||
return (
|
||||
<Tooltip
|
||||
overlayInnerStyle={{ maxWidth: 265, width: 'max-content' }}
|
||||
overlayInnerStyle={{ maxWidth: 290, width: 'max-content' }}
|
||||
title={intl.formatMessage(
|
||||
{ id: 'playground.audio.uploadfile.tips' },
|
||||
{ formats: props.accept }
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import PageTools from '@/components/page-tools';
|
||||
import { PageAction } from '@/config';
|
||||
import breakpoints from '@/config/breakpoints';
|
||||
import { SyncOutlined } from '@ant-design/icons';
|
||||
import { PageContainer } from '@ant-design/pro-components';
|
||||
import { useIntl, useNavigate } from '@umijs/max';
|
||||
@@ -104,24 +103,6 @@ const Catalog: React.FC = () => {
|
||||
setActiveId(-1);
|
||||
};
|
||||
|
||||
const handleResize = useCallback(
|
||||
_.throttle((size: { width: number; height: number }) => {
|
||||
const { width } = size;
|
||||
if (width < breakpoints.xs) {
|
||||
setSpan(24);
|
||||
} else if (width < breakpoints.sm) {
|
||||
setSpan(24);
|
||||
} else if (width < breakpoints.md) {
|
||||
setSpan(12);
|
||||
} else if (width < breakpoints.lg) {
|
||||
setSpan(12);
|
||||
} else {
|
||||
setSpan(8);
|
||||
}
|
||||
}, 100),
|
||||
[]
|
||||
);
|
||||
|
||||
const handleOnDeploy = useCallback((item: CatalogItemType) => {
|
||||
setActiveId(item.id);
|
||||
setOpenDeployModal({
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import breakpoints from '@/config/breakpoints';
|
||||
import { Col, Row, Spin } from 'antd';
|
||||
import { Col, FloatButton, Row, Spin } from 'antd';
|
||||
import ResizeObserver from 'rc-resize-observer';
|
||||
import React, { useCallback } from 'react';
|
||||
import { CatalogItem as CatalogItemType } from '../config/types';
|
||||
@@ -80,6 +80,7 @@ const CatalogList: React.FC<CatalogListProps> = (props) => {
|
||||
)}
|
||||
</div>
|
||||
</ResizeObserver>
|
||||
<FloatButton.BackTop visibilityHeight={1000} />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -25,6 +25,7 @@ import {
|
||||
useState
|
||||
} from 'react';
|
||||
import { speechToText } from '../apis';
|
||||
import { SpeechToTextFormat } from '../config';
|
||||
import { RealtimeParamsConfig as paramsConfig } from '../config/params-config';
|
||||
import '../style/ground-left.less';
|
||||
import '../style/speech-to-text.less';
|
||||
@@ -306,7 +307,7 @@ const GroundLeft: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
{!isRecording && (
|
||||
<UploadAudio
|
||||
type="default"
|
||||
accept=".mp3,.mp4,.wav"
|
||||
accept={SpeechToTextFormat.join(',')}
|
||||
onChange={handleUploadChange}
|
||||
></UploadAudio>
|
||||
)}
|
||||
|
||||
@@ -137,6 +137,8 @@ export const OpenAIViewCode = {
|
||||
}
|
||||
};
|
||||
|
||||
export const SpeechToTextFormat = ['.mp3', '.mp4', '.wav', '.m4a'];
|
||||
|
||||
export const promptList = [
|
||||
'a lovely cat.',
|
||||
"Digital art, portrait of an anthropomorphic roaring Tiger warrior with full armor, close up in the middle of a battle, behind him there is a banner with the text 'Open Source'.",
|
||||
|
||||
Reference in New Issue
Block a user