|
163 | 163 | IsPrevPhoto="@(_previousFile?.FileType==File.FileTypeEnum.Photo)" |
164 | 164 | IsNextPhoto="@(_nextFile?.FileType==File.FileTypeEnum.Photo)" /> |
165 | 165 | break; |
| 166 | + case File.FileTypeEnum.Audio: |
| 167 | + <audio class="mx-auto w-75" style="max-height: 95vh;" controls autoplay id="audioTagId"> |
| 168 | + <source src="@_currentFile?.Path"> |
| 169 | + Your browser does not support the audio tag. |
| 170 | + </audio> |
| 171 | + break; |
166 | 172 | case File.FileTypeEnum.PDF: |
167 | 173 | <embed src="@_currentFile?.Path" style="width:100%;height:95vh;" /> |
168 | 174 | break; |
|
250 | 256 | private string _storagePrefix = string.Empty; |
251 | 257 |
|
252 | 258 | private const bool SHOW_DEBUG_INFO = false; |
253 | | - private const int LOAD_VIDEO_TIME_DELAY = 100; |
| 259 | + private const int LOAD_VIDEO_OR_AUDIO_TIME_DELAY = 100; |
254 | 260 | private const int MOVE_FILE_TIME_DELAY = 500; |
255 | 261 |
|
256 | 262 | private static Regex s_alfanumeralRegex = new Regex(@"^[a-zA-Z0-9]$"); |
|
423 | 429 | _nextFile = null; |
424 | 430 | } |
425 | 431 | } |
426 | | - ReloadPlayerIfVideo(); |
| 432 | + ReloadPlayerIfVideoOrAudio(); |
427 | 433 | StateHasChanged(); |
428 | 434 | _isChangingFile = false; |
429 | 435 | } |
|
452 | 458 | _status = Status.Initialized; |
453 | 459 | await _PSSWriteStatus(); |
454 | 460 | } |
455 | | - ReloadPlayerIfVideo(); |
| 461 | + ReloadPlayerIfVideoOrAudio(); |
456 | 462 | StateHasChanged(); |
457 | 463 | await _PSSWriteMyMediaCurrentIndex(); |
458 | 464 | _isChangingFile = false; |
|
479 | 485 | _storagePrefix = await FileService.GetStoragePrefix(); |
480 | 486 | _previousFile = _currentFile = _nextFile = null; |
481 | 487 | InitSession(); |
482 | | - ReloadPlayerIfVideo(); |
| 488 | + ReloadPlayerIfVideoOrAudio(); |
483 | 489 | StateHasChanged(); |
484 | 490 | } |
485 | 491 | private async void ShutdownApp() |
|
511 | 517 | await Back(); |
512 | 518 | } |
513 | 519 | else if (key == "F2") await FileNameInputOpen(); |
514 | | - else if (key == " " && null != _currentFile && _currentFile.FileType == File.FileTypeEnum.Photo) await JS.InvokeVoidAsync("toggleModal", "photoModal"); |
515 | | - else if (key.Length == 1 && s_alfanumeralRegex.IsMatch(key) && null != _folders) |
| 520 | + else if (key == " " && null != _currentFile) |
| 521 | + { |
| 522 | + switch (_currentFile.FileType) |
| 523 | + { |
| 524 | + case File.FileTypeEnum.Photo: |
| 525 | + await JS.InvokeVoidAsync("toggleModal", "photoModal"); |
| 526 | + break; |
| 527 | + case File.FileTypeEnum.Video: |
| 528 | + await JS.InvokeVoidAsync("pauseOrPlayVideo"); |
| 529 | + break; |
| 530 | + case File.FileTypeEnum.Audio: |
| 531 | + await JS.InvokeVoidAsync("pauseOrPlayAudio"); |
| 532 | + break; |
| 533 | + } |
| 534 | + } |
| 535 | + else if (key.Length == 1 && s_alfanumeralRegex.IsMatch(key) && null != _folders) |
516 | 536 | { |
517 | 537 | var folder = _folders.Where(f => f.KeyBind == key.First()).FirstOrDefault(); |
518 | 538 | if (null != folder) |
|
591 | 611 | } |
592 | 612 | } |
593 | 613 |
|
594 | | - private async void ReloadPlayerIfVideo() |
| 614 | + private async void ReloadPlayerIfVideoOrAudio() |
595 | 615 | { |
596 | 616 | if (File.FileTypeEnum.Video == _currentFile?.FileType) |
597 | 617 | { |
598 | | - await Task.Delay(LOAD_VIDEO_TIME_DELAY); |
| 618 | + await Task.Delay(LOAD_VIDEO_OR_AUDIO_TIME_DELAY); |
599 | 619 | await JS.InvokeVoidAsync("loadVideo"); |
600 | 620 | } |
| 621 | + else if (File.FileTypeEnum.Audio == _currentFile?.FileType) |
| 622 | + { |
| 623 | + await Task.Delay(LOAD_VIDEO_OR_AUDIO_TIME_DELAY); |
| 624 | + await JS.InvokeVoidAsync("loadAudio"); |
| 625 | + } |
601 | 626 | } |
602 | 627 | private async void ToggleSidePanel() |
603 | 628 | { |
|
0 commit comments