diff --git a/.env.development b/.env.development index 10e74fa..f476d73 100644 --- a/.env.development +++ b/.env.development @@ -3,7 +3,7 @@ NEXT_PUBLIC_API_BASE_URL=https://event.cloudnativedays.jp/ NEXT_PUBLIC_EVENT_ABBR=cndw2024 # NEXT_PUBLIC_DEBUG='true' # BGM の長さを音はめする 長さ全部: 192.03 -NEXT_PUBLIC_TRANS_TIME_PAGE1='65' -NEXT_PUBLIC_TRANS_TIME_PAGE2='65' -NEXT_PUBLIC_TRANS_TIME_PAGE3='62.03' +NEXT_PUBLIC_TRANS_TIME_PAGE1='32.5' +NEXT_PUBLIC_TRANS_TIME_PAGE2='32.5' +NEXT_PUBLIC_TRANS_TIME_PAGE3='127.03' NEXT_PUBLIC_EXCLUDED_TALKS='2056' diff --git a/.env.production b/.env.production index 7285bdc..19c48bb 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ NEXT_PUBLIC_API_BASE_URL=https://event.cloudnativedays.jp/ NEXT_PUBLIC_EVENT_ABBR=cndw2024 # NEXT_PUBLIC_DEBUG='true' -NEXT_PUBLIC_TRANS_TIME_PAGE1='45.335' -NEXT_PUBLIC_TRANS_TIME_PAGE2='45.335' -NEXT_PUBLIC_TRANS_TIME_PAGE3='0' +NEXT_PUBLIC_TRANS_TIME_PAGE1='32.5' +NEXT_PUBLIC_TRANS_TIME_PAGE2='32.5' +NEXT_PUBLIC_TRANS_TIME_PAGE3='127.03' NEXT_PUBLIC_EXCLUDED_TALKS='2056' diff --git a/compose.yaml b/compose.yaml index af0b673..d12b10e 100644 --- a/compose.yaml +++ b/compose.yaml @@ -7,12 +7,13 @@ services: - .env.development ports: - 3000:3000 - proxy: - image: hrk091/simple-proxy:v0.0.2 - ports: - - 8888:8888 - environment: - TARGET_URL: https://event.cloudnativedays.jp/ - # CACHE_DIR: /mnt/cache - volumes: - - ./cache:/mnt/cache + # CORS 超えに必要だったが、現在は不要 + # proxy: + # image: hrk091/simple-proxy:v0.0.2 + # ports: + # - 8888:8888 + # environment: + # TARGET_URL: https://event.cloudnativedays.jp/ + # # CACHE_DIR: /mnt/cache + # volumes: + # - ./cache:/mnt/cache diff --git a/public/cndw2024/cndw2024_intermission.mp3 b/public/cndw2024/cndw2024_intermission.mp3 new file mode 100644 index 0000000..2ba8dd6 Binary files /dev/null and b/public/cndw2024/cndw2024_intermission.mp3 differ diff --git a/src/api/config/apiConfig.ts b/src/api/config/apiConfig.ts index 8f74d64..93fa247 100644 --- a/src/api/config/apiConfig.ts +++ b/src/api/config/apiConfig.ts @@ -1,13 +1,8 @@ // eventAbbrはイベント毎に変更する. -const eventAbbr = 'cnds2024' +const eventAbbr = 'cndw2024' -// export const apiConfig = { -// talksEndpoint: `https://event.cloudnativedays.jp/api/v1/talks?eventAbbr=${eventAbbr}`, -// talkEndpoint: `https://event.cloudnativedays.jp/api/v1/talks/`, -// speakersEndpoint: `https://event.cloudnativedays.jp/api/v1/speakers?eventAbbr=${eventAbbr}`, -// }; export const apiConfig = { - talksEndpoint: `https://dreamkast-dk-2147.dev.cloudnativedays.jp/api/v1/talks?eventAbbr=${eventAbbr}`, - talkEndpoint: `https://dreamkast-dk-2147.dev.cloudnativedays.jp/api/v1/talks/`, - speakersEndpoint: `https://dreamkast-dk-2147.dev.cloudnativedays.jp/api/v1/speakers?eventAbbr=${eventAbbr}`, -} + talksEndpoint: `https://event.cloudnativedays.jp/api/v1/talks?eventAbbr=${eventAbbr}`, + talkEndpoint: `https://event.cloudnativedays.jp/api/v1/talks/`, + speakersEndpoint: `https://event.cloudnativedays.jp/api/v1/speakers?eventAbbr=${eventAbbr}`, +}; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f06d77c..44daf98 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -5,8 +5,8 @@ import { Inter } from 'next/font/google' const inter = Inter({ subsets: ['latin'] }) export const metadata: Metadata = { - title: 'Web Interlude PoC', - description: 'Test core requirements for the web interlude.', + title: 'EMTEC Intermission', + description: 'EMTEC Intermission is a web application for generating Intermission for use in streaming.', } export default function RootLayout({ @@ -17,7 +17,7 @@ export default function RootLayout({ folder1: React.ReactNode }) { return ( - + {children} ) diff --git a/src/app/page.tsx b/src/app/page.tsx index d49f746..231b640 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -5,65 +5,65 @@ import Link from 'next/link' export default function Home() { return (
-

Web Interlude PoC

-
+

EMTEC Intermission

+

- Video{' '} + Dreamkast で利用(Day1分){' '} ->

- Playing a video using video.js. + CloudNativeDays イベントのインタミはこちら.

- Playlist{' '} + Dreamkast で利用(Day2分){' '} ->

- Playing a video playlist using videojs-playlist. + CloudNativeDays イベントのインタミはこちら.

- Animation{' '} + TS ファイルをソースとして利用(Day1分){' '} ->

- 2D animation with React Pixi. + src/data/talks.ts に書き込んだ トーク情報からインタミを生成する場合はこちら.

- Player{' '} + TS ファイルをソースとして利用(Day2分){' '} ->

- Switching multi media sources automatically. + src/data/talks.ts に書き込んだ トーク情報からインタミを生成する場合はこちら.

diff --git a/src/app/player/@videoPlaylist/page.tsx b/src/app/player/@videoPlaylist/page.tsx index c023ec9..cc372fb 100644 --- a/src/app/player/@videoPlaylist/page.tsx +++ b/src/app/player/@videoPlaylist/page.tsx @@ -8,47 +8,48 @@ import { Playlist } from '../../../components/VideoPlaylist' const VideoPlaylist = dynamic(() => import('../../../components/VideoPlaylist')) +// CNDW2024 は CM スポンサーなしのためコメントアウト const playlist: Playlist = [ - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm1.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm2.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm3.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm4.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm5.mp4', - type: 'video/mp4', - }, - ], - }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm1.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm2.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm3.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm4.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm5.mp4', + // type: 'video/mp4', + // }, + // ], + // }, ] export default function Page() { diff --git a/src/app/video-playlist/page.tsx b/src/app/video-playlist/page.tsx index 7391e31..f4b6880 100644 --- a/src/app/video-playlist/page.tsx +++ b/src/app/video-playlist/page.tsx @@ -7,46 +7,46 @@ import { Playlist } from '@/components/VideoPlaylist' const VideoPlaylist = dynamic(() => import('../../components/VideoPlaylist')) const playlist: Playlist = [ - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm1.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm2.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm3.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm4.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm5.mp4', - type: 'video/mp4', - }, - ], - }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm1.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm2.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm3.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm4.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm5.mp4', + // type: 'video/mp4', + // }, + // ], + // }, ] export default function Page() { diff --git a/src/components/Page4.tsx b/src/components/Page4.tsx index abece41..525fff8 100644 --- a/src/components/Page4.tsx +++ b/src/components/Page4.tsx @@ -6,47 +6,50 @@ import VideoPlaylist, { Playlist } from './VideoPlaylist' type Props = { view: Optional } +// CNDW2024 は CM スポンサーなしのためコメントアウト +// 復活させた場合は src/pages/break-dk/talks/[talkId].tsx の Page4 のコメントアウトも外すこと + const playlist: Playlist = [ - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm1.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm2.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm3.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm4.mp4', - type: 'video/mp4', - }, - ], - }, - { - sources: [ - { - src: 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm5.mp4', - type: 'video/mp4', - }, - ], - }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm1.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm2.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm3.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm4.mp4', + // type: 'video/mp4', + // }, + // ], + // }, + // { + // sources: [ + // { + // src: 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm5.mp4', + // type: 'video/mp4', + // }, + // ], + // }, ] export default function Page(_: Props) { diff --git a/src/components/PixiApp.tsx b/src/components/PixiApp.tsx index 3bb4725..6994b0f 100644 --- a/src/components/PixiApp.tsx +++ b/src/components/PixiApp.tsx @@ -91,7 +91,7 @@ const RotatingBunny: React.FC = ( }, [props.talkData, props.speakersData]) if (!sound.exists('bgm')) - sound.add('bgm', '/pek2024/pek2024_intermission.mp3') + sound.add('bgm', '/cndw2024/cndw2024_intermission.mp3') const style_clock = new PIXI.TextStyle({ align: 'center', diff --git a/src/pages/break-dk/talks/[talkId].tsx b/src/pages/break-dk/talks/[talkId].tsx index ab2b631..3cbd82e 100644 --- a/src/pages/break-dk/talks/[talkId].tsx +++ b/src/pages/break-dk/talks/[talkId].tsx @@ -29,14 +29,18 @@ function Pages() { , , , - , + // CM スポンサーなしのためコメントアウト (下のshouldPlayAudioも編集が必要) + // , ] useEffect(() => { setTotalPage(pages.length) }, []) // eslint-disable-line react-hooks/exhaustive-deps - const audioSrc = '/pek2024/pek2024_intermission.mp3' - const shouldPlayAudio = current !== pages.length - 1 + const audioSrc = '/cndw2024/cndw2024_intermission.mp3' + // CM ありの場合 + // const shouldPlayAudio = current !== pages.length - 1 + // CM なしの場合 + const shouldPlayAudio = true if (isLoading) { return
Loading...
diff --git a/src/pages/break/talks/[talkId].tsx b/src/pages/break/talks/[talkId].tsx index 07f0465..d43c99b 100644 --- a/src/pages/break/talks/[talkId].tsx +++ b/src/pages/break/talks/[talkId].tsx @@ -44,7 +44,7 @@ function Pages() { setTotalPage(pages.length) }, []) // eslint-disable-line react-hooks/exhaustive-deps - const audioSrc = '/pek2024/pek2024_intermission.mp3' + const audioSrc = '/cndw2024/cndw2024_intermission.mp3' const shouldPlayAudio = current !== pages.length - 1 if (!view) { diff --git a/src/service-worker.js b/src/service-worker.js index eb6028c..5dd9b10 100644 --- a/src/service-worker.js +++ b/src/service-worker.js @@ -5,11 +5,12 @@ precacheAndRoute(self.__WB_MANIFEST) const CACHE_NAME = 'video-cache' const VIDEO_URL = [ - 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm1.mp4', - 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm2.mp4', - 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm3.mp4', - 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm4.mp4', - 'https://web-intermission.s3.isk01.sakurastorage.jp/pek2024/cm5.mp4', + // CNDW2024 は CM スポンサーなしのためコメントアウト + // 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm1.mp4', + // 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm2.mp4', + // 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm3.mp4', + // 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm4.mp4', + // 'https://web-intermission.s3.isk01.sakurastorage.jp/cndw2024/cm5.mp4', ] async function updateCache() {