Commit Graph

326 Commits

Author SHA1 Message Date
YangJH
66e0ba579b
fix(android): playback doesn't work with 0 startPositionMs (#3784) 2024-05-17 14:21:02 +02:00
Olivier Bouillet
324b461527
fix(android): remove remaining ad view when zapping (#3786)
* perf: ensure we do not provide callback to native if no callback provided from app

* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size

* chore: improve issue template

* fix(android): avoid video view flickering at playback startup

* fix(android): ensure adsLoader is well release if unused
2024-05-16 15:57:27 +02:00
Olivier Bouillet
219496ff3a
fix(android): video tracks crash and clean (#3767)
* perf: ensure we do not provide callback to native if no callback provided from app

* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size

* chore: improve issue template

* fix(android): avoid video view flickering at playback startup

* fix: fix crash when invalid index type is provided and minor clean up
2024-05-14 16:39:41 +02:00
Olivier Bouillet
9716f4cb36
Fix(android): avoid video resizing flickering (#3751)
* perf: ensure we do not provide callback to native if no callback provided from app

* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size

* chore: improve issue template

* fix(android): avoid video view flickering at playback startup
2024-05-13 19:20:36 +02:00
Olivier Bouillet
2e623ca0fb
fix(avoid): avoid early return in setSrc (#3759)
* perf: ensure we do not provide callback to native if no callback provided from app

* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size

* fix(android): avoid easly return in setSrc
2024-05-13 19:19:20 +02:00
Olivier Bouillet
e420418e8f
feat(android): make buffering strategy dynamic (#3756)
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* feat: expose bufferingStrategy to app and change default behavior
rename disableBuffering undocumented prop to bufferingStrategy and document it.
before this change, default was 'dependingOnMemory'. It can trigger some unnecessary gc() call on android.
2024-05-11 22:02:04 +02:00
Olivier Bouillet
1a48f190f0
chore(android): clean up logs (#3758)
* perf: ensure we do not provide callback to native if no callback provided from app

* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size

* chore(android): cleanup logs TAG
2024-05-11 19:03:44 +02:00
Olivier Bouillet
efb338ee2a
chore(android): refactor side loaded text tracks (#3754)
* perf: ensure we do not provide callback to native if no callback provided from app

* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size

* chore(android): refactor external text tracks management.

Split parsing and tracks handling

* chore: fix linter
2024-05-11 18:57:59 +02:00
Zakir Bangash
d25629bb62
Revert "fix(android): video flickering add playback start (#3746)" (#3748)
This reverts commit b1cd52bc58.

s
2024-05-10 14:23:30 +02:00
Olivier Bouillet
b1cd52bc58
fix(android): video flickering add playback start (#3746)
* perf: ensure we do not provide callback to native if no callback provided from app

* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size

* fix(android): avoid video flickering at playback start
2024-05-08 17:55:35 +02:00
Krzysztof Moch
8ad4be459b
feat: add notification controls (#3723)
* feat(ios): add `showNotificationControls` prop

* feat(android): add `showNotificationControls` prop

* add docs

* feat!: add `metadata` property to srouce

This is breaking change for iOS/tvOS as we are moving some properties, but I believe that this will more readable and more user friendly

* chore(ios): remove UI blocking function

* code review changes for android

* update example

* fix readme

* fix typos

* update docs

* fix typo

* chore: improve sample metadata notification

* update codegen types

* rename properties

* update tvOS example

* reset metadata on source change

* update docs

---------

Co-authored-by: Olivier Bouillet <freeboub@gmail.com>
2024-05-07 12:30:57 +02:00
Olivier Bouillet
8eb31e82c7
chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size (#3739) 2024-05-06 22:04:40 +02:00
Olivier Bouillet
e05da4e9fe
feat(android): implement asset folder playback (#3733)
* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix: ensure tracks are well displayed in the sample

* feat(android): implement playback from asset folder

* chore(android): fix linter

* chore: move sample mp4 from package assets to exemple assets
2024-05-06 21:51:17 +02:00
lovegaoshi
ecc946d1c1
feat(android): cache (#3514)
* feat: android cache

* docs: bufferSize

* Revert "docs: bufferSize"

This reverts commit 09637b134e121b9ca3ffd78f2f5bc657319ed67a.

* fix: cacheSize name

* feat: singleton android cache

* fix: local cache resolve

* fix: lint

* docs: android cache

* chore: merge conflict

* fix: lint

* chore: useCache button

* chore: fix state in the sample

* fix: cache factory

* chore: update cacheSizeMB docs

---------

Co-authored-by: Olivier Bouillet <freeboub@gmail.com>
2024-05-01 11:20:34 +02:00
Pixee OSS Assistant
eec125579f
chore(android): switch order of literals to prevent NullPointerException (#3711)
Co-authored-by: pixeebot[bot] <104101892+pixeebot[bot]@users.noreply.github.com>
2024-04-25 11:15:32 +02:00
YangJH
6f61d7f6e6
fix(android): prevent changing video track when video load (#3683)
- video track must change after video loaded, if change with load state, ready state can be called
2024-04-22 21:32:59 +02:00
Olivier Bouillet
c730306e3a
fix(android): seek callback with controls (#3694)
* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix: ensure tracks are well displayed in the sample

* fix(android): add onSeek callback when controls are enable

* chore: remove seekTime which is useless now
2024-04-22 10:35:51 +02:00
邵瑾瑜
3e3532691a
fix(android): catch errors in performOnPlayerView (#3685)
Co-authored-by: JinYuSha0 <a1009943858@gmail.com>
2024-04-18 10:18:14 +02:00
YangJH
1af12f9dfb
fix(android): fixed bug where video would not be visible after remount and change of drm source (#3668)
* refactor(android): remove redundant lifecycle (onDetachedFromWindow)

* fix: remove initPlayer within onAttachedToWindow and remove lifecycle
2024-04-16 14:42:34 +02:00
Krzysztof Moch
64e3191f73
feat(android): allow to disable selected functionalities (#3681)
* feat(android): add possibility do disable some of functionalities

* create dump classes

* remove dump files when functionalities are enabled

* add docs

* enable all functionalities in example

* throw error when trying to use disabled functionality

* update docs
2024-04-16 14:23:19 +02:00
Olivier Bouillet
2285eba8f0
Feat/add rtsp support (#3677)
* feat(android) : add rtsp support
2024-04-16 10:41:39 +02:00
Krzysztof Moch
336b9f0220
fix(android): set title for external subtitles (#3676) 2024-04-14 14:57:04 +02:00
Olivier Bouillet
d3cc0d0c5a
chore(android): fix various warning (#3625) 2024-03-31 20:03:52 +02:00
Krzysztof Moch
e87c14a437
fix(android): update ui manager getter (#3634) 2024-03-31 19:15:14 +02:00
Olivier Bouillet
dd3a400689
Chore/fix strange management of resume (#3629)
* fix(android): rename startPlayback to resumePlayback and fix implementation

I cannot understand why this implementation has been done. I guess this is to workaround some issue...
now resume only resume playback and don't start a new playback during bufffering...

* chore: simplify duplicated code
2024-03-29 20:59:58 +01:00
Olivier Bouillet
f10511d953
fix(android): improve and backBufferDurationMs. mainly let exoplayer manage the prop (#3619)
BREAKING CHANGE: move backBufferDurationMs from root props to bufferConfig
2024-03-28 21:33:17 +01:00
Krzysztof Moch
0312afc8ea
fix: remove setNativeProps usage (#3605)
* fix: remove `setNativeProps` usage

* code review
2024-03-28 11:22:04 +01:00
Gaëtan Kueny
bfb76e6d15
fix(android): keep screen on on fullscreen (#3563)
add KEEP_SCREEN_ON flag when video is fullscreen & playing to avoid phone to go off.
inspired by 2d8466128d
2024-03-22 09:17:00 +01:00
Olivier Bouillet
d5c8b514a1
fix(android): track selection parameter has change in last release. (#3594)
Move all setSelectedTrack to String instead of Dynamic

Co-authored-by: Olivier Bouillet <olivier@OrdinateOlivier.lan>
2024-03-22 07:58:09 +01:00
Olivier Bouillet
3d7444ab25
fix(android): ensure rate is never set to 0 (#3593)
* fix(android): ensure rate is never set to 0

---------

Co-authored-by: Olivier Bouillet <olivier@OrdinateOlivier.lan>
2024-03-21 15:40:25 +01:00
Olivier Bouillet
408cfb2c1c
chore: various code clean (#3591)
* chore: remove media3 dependancy from common

* chore: remove unused

* chore: fix linter change

---------

Co-authored-by: Olivier Bouillet <olivier@OrdinateOlivier.lan>
2024-03-21 14:07:53 +01:00
coofzilla
f4cce2ecdb
feat: implement opacity to control visibility of subtitles (#3583)
* feat: implement opacity to control visibility of subtitles

implemented per discussion on https://github.com/react-native-video/react-native-video/issues/3579

updated docs and linked onTextTrackDataChanged to the subtitle style to clarify intent on how to control visibility.

* chore: update type so that we use a union of 0 1 vs any number

* chore: run ktlint to get rid of white spaces

* feat: add ability to have range of numbers for opacity; while, 0 will still not render the subtitles.

added util function for safeGetFloat

updated types

* feat: add ability to suppress subtitles with opacity 0

add data structure for subtitle styles for extensibility

* chore: run yarn check-ios

* chore: update documentation to clarify differences between android and ios

* Update android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>

---------

Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
2024-03-14 11:29:50 +01:00
Olivier Bouillet
eaa72c6665
fix(android): enableDecoderFallback to decrease DECODER_ERROR issue (#3416)
Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2024-03-12 22:38:24 +01:00
coofzilla
6184c10acc
feat(android): add subtitle event (#3566)
* feat: add onCues method to get access to subtitle content
2024-03-11 13:50:19 +01:00
YangJH
366c841c0b
fix(android): check disableFocus when state is ready (#3494)
* fix: check disableFocus when state is ready

* Revert "fix: check disableFocus when state is ready"

This reverts commit b616bc2b8165f49a60d2f4b061d5d9abce63bff6.

* refactor: makes keepScreenOn ignore disableFocus when start playback
2024-03-08 19:34:09 +01:00
yungblud
b33e6df496
Fabric (New Architecture) codegen support (#3487)
* feat: implemented codegenConfig on package.json

* chore: moved directory location of Fabric component

* fix: typefix FabricExample

* chore: pod instaslled FabricExample iOS app

* feat: implemented codegen config on package.json

* feat: implemented codegen of specs/VideoNativeComponent

* chore: removed not using type Filter

* feat: removed unnecessary export on codegen tyepes

* Revert "feat: removed unnecessary export on codegen tyepes"

This reverts commit fc243b0ac5c565eda4886cd865c32ba4e812d7ff.

* refactor: fixed types on Video component and modified types with codegen types

* feat: modified codegenNativeComponent naming (RCTVideo)

* feat: pod installed example basic app

* feat: bump up react-native dev dependency version to 0.73.2 for supporting codegen array event params

* feat: support array param types on event callback function codegen types

* chore: pod installed ios basic example

* feat: modified source prop as optional type

* feat: add original src/VideoComponent.ts again

* Revert "feat: add original src/VideoComponent.ts again"

This reverts commit d63ac94e5330f7c7fb50374f65f8f3f4e0a225d7.

* feat: add original src/VideoComponent.ts again with original file name

* feat: git rm src/specs/VideoNativeComponent.ts

* feat: git mv VideoNativeComponent.ts

* feat: git mv src/specs/VideoNativeComponent.ts

* feat: git mv src/VideoNativeComponent.ts src/specs/VideoNativeComponent.ts

* feat: implemented array type handling on android JAVA

* feat: updated iOS requestHeaders parsing native

* feat: use safeGetArray on android, removed not using import too

* feat: temporary commit - reusing enum types for remaining docs types

* feat: implemented mixed type of SelectedTrack.value for JS layer
2024-03-07 11:35:17 +01:00
Krzysztof Moch
38e3625541
fix(android): suppress lint PrivateResource (#3531) 2024-02-14 13:13:36 +01:00
Gyanendro Kh
af6aea8934
fix(android): onSeek called instantly (#3530) 2024-02-13 14:58:53 +01:00
Krzysztof Moch
41e9bcb1ef
fix(android): fix crash with interop layer (#3509) 2024-01-31 12:36:01 +01:00
Olivier Bouillet
aec7db6390
Revert "fix: remove pausePlayback when audio focus loss event (#3496)" (#3504)
This reverts commit b1ab0f24a3.

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2024-01-29 07:36:13 +01:00
Krzysztof Moch
135d97ce50
fix(android): re-layout controls after fullscreen dismiss (#3490)
* fix(android): re-layout controls after fullscreen dismiss
2024-01-26 21:34:07 +01:00
YangJH
7eeb1c530d
refactor(android): remove redundant prop variable (#3492) 2024-01-23 22:28:12 +01:00
YangJH
b1ab0f24a3
fix: remove pausePlayback when audio focus loss event (#3496) 2024-01-23 22:22:14 +01:00
YangJH
3858a15b42
fix: remove lifecycle listener after component unmount (#3489)
- fix issue #3488
2024-01-20 13:29:29 +01:00
Hanno J. Gödecke
11e5b756b1
fix(android): support opacity properly (#3464) 2024-01-10 08:46:40 +01:00
lovegaoshi
dd7bb54720
fix(android): default UA (#3429)
* Update DataSourceUtil.java

* fix(android): default UA
2023-12-20 19:49:26 +01:00
Olivier Bouillet
c8983f4094
chore: remove unused declarations (#3414)
Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-12-10 15:55:17 +01:00
Olivier Bouillet
f9bcaac515
fix(android): ensure adTagUrl can be reset (#3408)
Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-12-08 13:30:23 +01:00
Olivier Bouillet
908e30f9b8
fix(android): add explicitly dependancy to androidx.activity (#3410) 2023-12-08 11:33:29 +01:00
Krzysztof Moch
800aee09de
chore: lint project (#3395)
* chore: format swift code
* chore: format clang code
* chore: format kotlin code
* refactor: rename folder "API" to "api"
2023-12-07 08:47:40 +01:00
Krzysztof Moch
91d7135562
chore: enhance CI tests (#3344)
* chore: add swift linter

* chore: add clang linters

* chore: add kotlin linter

* chore(ci): update workflows

* chore(ci): clean workflows
2023-12-02 15:58:43 +01:00
Axel Vencatareddy
596c02d2b3
feat: add onAdError event listener (#3381)
* feat: add onAdError event listener
* feat: remove onAdError event listener and use already existing
* feat: add ERROR event to docs
2023-12-02 13:52:01 +01:00
YangJH
cac802fb77
chore(android): replacing deprecated SYSTEM_UI flag (#3386) 2023-11-30 21:16:24 +01:00
Axel Vencatareddy
d05231d76b
feat(ad): add data to onReceiveAdEvent (#3378)
* feat(ad): add adData to onReceiveAdEvent
* fix: remove adData from response if empty
* fix: add getAdData to stub file
* chore: fix build without IMA
* fix: rename `adData` to `data`

---------

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-11-27 21:43:30 +01:00
Olivier Bouillet
fe89122524
fix(android): ads build and enable ads in android sample (#3376)
* fix: refactor androidx core version management

* chore: fix missing import rework for media3

* fix: enable IMA in sample

* chore: rename stub fie

* chore: code review, fix variable name

* chore: reorder imports

* chore: fix linking in sample

* chore: fix stub management

* chore: few cleans and ensure we don't use ima is disabled

---------

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-11-24 13:17:13 +01:00
YangJH
2648502b36
feat: implement startPosition (#3355)
* feat(android): implement startPosition

* feat(ios): implement startPosition

* feat: implement startPosition type

* docs: fix typo

* docs: update startPosition

* refactor: put startPosition inside source prop
- put startPosition inside source prop
- rename existing prop (startTime, endTime)

* docs: update startPosition property description

* fix: fix invalid assignments

* refactor: remove redundant optional chaining

* feat: allow "0" to work too
2023-11-24 12:52:46 +01:00
Sung Jeon
0c0f3174cb
fix(android): fix leak caused by removing lifecycle listener too early (#3380)
* Fix lifecycle listener being removed too early
2023-11-23 23:23:44 +01:00
Olivier Bouillet
5beef383cb
fix(android): revert media3 update, back to 1.1.1 (#3369)
* fix: revert last media3 upgrade

---------

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-11-22 15:03:57 +01:00
YangJH
17dbf6e826
feat(android): bump media3 version from v1.1.1 to v1.2.0 (#3362)
* feat(android): bump media3 version from v1.1.1 to v1.2.0

* chore: add lint file for ignore UnstableApi lint error
2023-11-20 08:20:27 +01:00
YangJH
f2e80e9f2d
feat(android): replace deprecated ExoPlayer2 with AndroidX media3 (#3337)
* feat(android): implement AndroidX media3 dependencies
* refactor(android): remove duplicate code
* refactor(android): remove unused codes
* feat(android): replace ExoPlayer2 with AndroidX media3
* fix(android): move default properties to gradle.properties
* revert(android): prevent security exception
* chore: align indent
* chore: remove redundant comments
* chore: reorder import
* fix: apply media3's legacy player control view
2023-11-18 14:13:54 +01:00
YangJH
8fbdc28a73
fix: fixes where Android's muted prop behavior differs from iOS (#3339) 2023-11-08 19:39:04 +01:00
Krzysztof Moch
6df0f7d1c0
chore(android): bump kotlin version (#3334)
* chore(android): update gradle files

* docs: update android installation section
2023-11-08 07:41:17 +01:00
Krzysztof Moch
cdbc856387
feat: add onVolumeChange event (#3322)
* feat: implement `onVolumeChange` event
2023-11-04 18:11:54 +01:00
Andy Garron
68beb2701a
[Android] use explicit not-exported flag for AudioBecomingNoisyReceiver (#3327)
* using explicit not-exported flag for AudioBecomingNoisyReceiver
* androidx.core:core version 1.9.0, androix.activity:activity version 1.6.0

---------

Co-authored-by: Andy G <Andy Garron>
2023-11-04 14:59:59 +01:00
Olivier Bouillet
0bfbda66e4
fix(android): ensure audio volume is changed in UI thread (#3292)
Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-10-18 22:45:19 +02:00
Jay Kim
c78077ff0a
fix(android): remove kotlin-android-extensions (#3299) 2023-10-18 22:31:31 +02:00
Olivier Bouillet
ab0398d7dc
Chore/refactor in api folder (#3285)
* feat: add prop to allow controlling of debug log level

* fix: move props parsing to safeGetters

* chore: fix typing

* chore: fix types and lintter

* chore: move file VideoEventEmitter

* fix: make VideoEventEmitter player agnostic

And create a dedicated API data for that

* chore: move generic file in API folder

---------

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-10-13 17:27:55 +02:00
Olivier Bouillet
ad581ea2dc
chore(android): Fix/make videoEventEmitter agnostic on player (#3281) 2023-10-12 21:46:40 +02:00
Olivier Bouillet
a4073d3e70
chore(android): fix some android studio warning (#3290)
Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-10-12 10:36:43 +02:00
Krzysztof Moch
7fd7b3ff32
feat: refactor resize prop handler (#3286) 2023-10-11 21:56:54 +02:00
Olivier Bouillet
add87922a6
feat(android): add prop to control debug log level (#3277)
* feat: add prop to allow controlling of debug log level

* fix: move props parsing to safeGetters

---------

Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
2023-10-10 09:47:56 +02:00
Krzysztof Moch
6e98cb9700
Merge branch 'master' into feat/playback-ref-functions 2023-09-29 22:44:32 +02:00
Olivier Bouillet
21de75eac6
Merge pull request #3254 from TheWidlarzGroup/feat/is-codec-supported-update
feat(android): update `isCodecSupported` to return enum
2023-09-29 18:28:18 +02:00
KrzysztofMoch
01c8e54e12 chore(android/gradle): add suport for AGP 8 2023-09-25 12:24:08 +02:00
KrzysztofMoch
842a156b3c chore(android/gradle): remove doubled compileOptions 2023-09-25 12:21:21 +02:00
KrzysztofMoch
4ad210b6c7 chore(android/gradle): update namespace handler 2023-09-25 12:21:21 +02:00
KrzysztofMoch
812e9dc84f feat(android): update isCodecSupported to return enum 2023-09-25 08:17:03 +02:00
KrzysztofMoch
f9743fdbd6 chore: invert setPlayerPauseState logic 2023-09-22 09:04:20 +02:00
KrzysztofMoch
421712825b chore: rename setPlayerStatus to setPlayerPauseState 2023-09-21 07:25:21 +02:00
KrzysztofMoch
0066ec744c feat(android): add playback functions to ref 2023-09-18 13:09:53 +02:00
olivier
19c8134dbc chore: fix build by adding a fallback on kotlin version 2023-09-05 22:17:37 +02:00
Craig Martin
0678a2ccf1 Fix: AudioOutput on Android 2023-09-05 14:27:10 -04:00
Craig Martin
89464279d1 Add missing import 2023-08-25 15:16:18 -04:00
Craig Martin
12edcf8555 Add missing import 2023-08-25 15:14:22 -04:00
Craig Martin
1111cdc15a Move enum to its own file 2023-08-25 15:09:19 -04:00
Craig Martin
dbeea19ce8 Formatting cleanup 2023-08-22 23:42:13 -04:00
Craig Martin
140cfe0a9c Additional formatting cleanup 2023-08-22 23:35:51 -04:00
Craig Martin
90a8eb245d Revert formatting changes to keep diff cleaner 2023-08-22 23:30:01 -04:00
Craig Martin
db6e73e035 Merge remote-tracking branch 'upstream/master' 2023-08-22 22:31:30 -04:00
Olivier Bouillet
30d8146916
Merge pull request #3175 from react-native-yeouido/feature/fabric-example
[New Arch] Fabric Example
2023-08-03 21:37:59 +02:00
Olivier Bouillet
90fe971dee
Merge pull request #3179 from vemarav/shuttercolor
Android: fixes black splashes
2023-08-03 20:59:35 +02:00
Olivier Bouillet
236d17e8b5
Merge branch 'master' into fix-memleak 2023-08-03 20:53:12 +02:00
Craig Martin
dc3e83a3d5 Merge remote-tracking branch 'upstream/master' 2023-07-27 16:24:11 -04:00
Aravind Vemula
28ac4d20f8 fixes black splashes on android 2023-07-23 21:38:26 +05:30
yungblud
0ca348f4b5 feat: setup kotlin 2023-07-19 16:32:19 +09:00
Olivier Bouillet
48fa1bc0e9
Merge pull request #3163 from mrousavy/patch-1
feat: RN 0.73 support
2023-07-08 12:51:38 +02:00
Marc Rousavy
7e5bc488c7
feat: RN 0.73 support
Adds `namespace` prop which is required by Gradle 8 (dep. of RN 0.73)
2023-07-03 22:12:44 +02:00
Roland Yeghiazaryan
7f3d707628
Fix ids in exo_player_control_view 2023-06-15 10:56:37 +02:00
Basix
493b620e63
Move OnAudioFocusChangeListener to own class 2023-05-09 11:45:56 +09:00
Craig Martin
e0095c3aff Make sure audioOutput is respected on first render 2023-04-12 17:43:52 -04:00