diff --git a/package-lock.json b/package-lock.json index 7b2bf4e..8e93a32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,8 @@ "interactjs": "^1.10.18", "vue": "^3.3.4", "vue-mention": "^2.0.0-alpha.3", - "vue3-emoji-picker": "^1.1.7" + "vue3-emoji-picker": "^1.1.7", + "vue3-slider": "^1.9.0" }, "devDependencies": { "@vitejs/plugin-vue": "^4.3.1", @@ -2023,6 +2024,17 @@ "vue": "^3.2.23" } }, + "node_modules/vue3-slider": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/vue3-slider/-/vue3-slider-1.9.0.tgz", + "integrity": "sha512-S+ojp3A21FiOM389Xp/bdUKSzjxcsTaDwI4N1aWVPoNh9//E8M+dqs1Ufjh86LulPAWLCN0ZR6eaD8jLZZ574g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 8fd2bb8..6a9104d 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "interactjs": "^1.10.18", "vue": "^3.3.4", "vue-mention": "^2.0.0-alpha.3", - "vue3-emoji-picker": "^1.1.7" + "vue3-emoji-picker": "^1.1.7", + "vue3-slider": "^1.9.0" }, "devDependencies": { "@vitejs/plugin-vue": "^4.3.1", diff --git a/pkg/server.go b/pkg/server.go index 39ddc15..99b3bf4 100644 --- a/pkg/server.go +++ b/pkg/server.go @@ -21,7 +21,7 @@ type Server struct { // NewServer initializes the Server. func NewServer() *Server { return &Server{ - subscriberMessageBuffer: 16, + subscriberMessageBuffer: 32, subscribers: make(map[*Subscriber]struct{}), } } diff --git a/src/App.vue b/src/App.vue index b18bd42..b1a8432 100644 --- a/src/App.vue +++ b/src/App.vue @@ -10,6 +10,7 @@ import ExplicitOpenModal from './components/ExplicitOpenModal.vue'; import ReportModal from './components/ReportModal.vue'; import MessageBox from './components/MessageBox.vue'; import WhoListRow from './components/WhoListRow.vue'; +import VideoFeed from './components/VideoFeed.vue'; import LocalStorage from './lib/LocalStorage'; import VideoFlag from './lib/VideoFlag'; @@ -48,6 +49,7 @@ export default { ReportModal, MessageBox, WhoListRow, + VideoFeed, }, data() { return { @@ -2313,6 +2315,13 @@ export default { $ref.muted = this.WebRTC.muted[username]; } }, + setVideoVolume(username, volume) { + // Set the volume on their video. + let $ref = document.getElementById(`videofeed-${username}`); + if ($ref) { + $ref.volume = volume / 100; + } + }, // Pop out a user's video. popoutVideo(username) { @@ -3123,7 +3132,8 @@ export default {
@@ -3135,7 +3145,8 @@ export default {
@@ -3448,7 +3459,7 @@ export default { + +
+ +
+
@@ -3535,85 +3561,36 @@ export default { -
- - -
- - {{ username }} -
- -
- - - - - - -
-
+ + -
- -
- - {{ username }} - - - - -
-
- - - -
-
- - - - - - -
-
+ + diff --git a/src/components/VideoFeed.vue b/src/components/VideoFeed.vue new file mode 100644 index 0000000..0eb1b9e --- /dev/null +++ b/src/components/VideoFeed.vue @@ -0,0 +1,167 @@ + + + + +