diff --git a/examples/trivial/index.html b/examples/trivial/index.html index 502c8605..b5a48296 100644 --- a/examples/trivial/index.html +++ b/examples/trivial/index.html @@ -6,6 +6,18 @@ <link href='https://fonts.googleapis.com/css?family=Muli:300,400' rel='stylesheet' type='text/css'> </head> <body style="height: 100%;"> + <audio id="ringbackAudio" loop> + <source src="media/ringback.ogg" type="audio/ogg" /> + <source src="media/ringback.mp3" type="audio/mpeg" /> + </audio> + <audio id="callendAudio"> + <source src="media/callend.ogg" type="audio/ogg" /> + <source src="media/callend.mp3" type="audio/mpeg" /> + </audio> + <audio id="busyAudio"> + <source src="media/busy.ogg" type="audio/ogg" /> + <source src="media/busy.mp3" type="audio/mpeg" /> + </audio> <section id="matrixchat" style="height: 100%;"></section> <script src="bundle.js"></script> <link rel="stylesheet" href="node_modules/matrix-react-sdk/bundle.css"> diff --git a/media/busy.mp3 b/examples/trivial/media/busy.mp3 similarity index 100% rename from media/busy.mp3 rename to examples/trivial/media/busy.mp3 diff --git a/media/busy.ogg b/examples/trivial/media/busy.ogg similarity index 100% rename from media/busy.ogg rename to examples/trivial/media/busy.ogg diff --git a/media/callend.mp3 b/examples/trivial/media/callend.mp3 similarity index 100% rename from media/callend.mp3 rename to examples/trivial/media/callend.mp3 diff --git a/media/callend.ogg b/examples/trivial/media/callend.ogg similarity index 100% rename from media/callend.ogg rename to examples/trivial/media/callend.ogg diff --git a/media/message.mp3 b/examples/trivial/media/message.mp3 similarity index 100% rename from media/message.mp3 rename to examples/trivial/media/message.mp3 diff --git a/media/message.ogg b/examples/trivial/media/message.ogg similarity index 100% rename from media/message.ogg rename to examples/trivial/media/message.ogg diff --git a/media/ring.mp3 b/examples/trivial/media/ring.mp3 similarity index 100% rename from media/ring.mp3 rename to examples/trivial/media/ring.mp3 diff --git a/media/ring.ogg b/examples/trivial/media/ring.ogg similarity index 100% rename from media/ring.ogg rename to examples/trivial/media/ring.ogg diff --git a/media/ringback.mp3 b/examples/trivial/media/ringback.mp3 similarity index 100% rename from media/ringback.mp3 rename to examples/trivial/media/ringback.mp3 diff --git a/media/ringback.ogg b/examples/trivial/media/ringback.ogg similarity index 100% rename from media/ringback.ogg rename to examples/trivial/media/ringback.ogg diff --git a/skins/base/views/molecules/voip/IncomingCallBox.js b/skins/base/views/molecules/voip/IncomingCallBox.js index 95263fb6..5adc71af 100644 --- a/skins/base/views/molecules/voip/IncomingCallBox.js +++ b/skins/base/views/molecules/voip/IncomingCallBox.js @@ -26,14 +26,27 @@ module.exports = React.createClass({ displayName: 'IncomingCallBox', mixins: [IncomingCallBoxController], + getRingAudio: function() { + return this.refs.ringAudio.getDOMNode(); + }, + render: function() { if (!this.state.incomingCallRoomId) { return ( - <div></div> + <div> + <audio ref="ringAudio" loop> + <source src="media/ring.ogg" type="audio/ogg" /> + <source src="media/ring.mp3" type="audio/mpeg" /> + </audio> + </div> ); } return ( <div className="mx_IncomingCallBox"> + <audio ref="ringAudio" loop> + <source src="media/ring.ogg" type="audio/ogg" /> + <source src="media/ring.mp3" type="audio/mpeg" /> + </audio> <div className="mx_IncomingCallBox_avatar"> <img src="img/voip.png" width="42" height="42"/> </div> diff --git a/src/controllers/molecules/voip/IncomingCallBox.js b/src/controllers/molecules/voip/IncomingCallBox.js index dc993936..1d6cca9e 100644 --- a/src/controllers/molecules/voip/IncomingCallBox.js +++ b/src/controllers/molecules/voip/IncomingCallBox.js @@ -43,8 +43,17 @@ module.exports = { this.setState({ incomingCallRoomId: null }); + this.getRingAudio().pause(); return; } + if (call.call_state === "ringing") { + this.getRingAudio().load(); + this.getRingAudio().play(); + } + else { + this.getRingAudio().pause(); + } + this.setState({ incomingCallRoomId: call.roomId });