diff --git a/src/players/FilePlayer.js b/src/players/FilePlayer.js index 020cc135..a15a7667 100644 --- a/src/players/FilePlayer.js +++ b/src/players/FilePlayer.js @@ -33,6 +33,13 @@ export default class FilePlayer extends Component { this.removeListeners(this.prevPlayer, prevProps.url) this.addListeners(this.player) } + + if ( + this.props.url !== prevProps.url && + !isMediaStream(this.props.url) + ) { + this.player.removeAttribute('srcObject') + } } componentWillUnmount () { diff --git a/test/players/FilePlayer.js b/test/players/FilePlayer.js index c109cb05..04e3e095 100644 --- a/test/players/FilePlayer.js +++ b/test/players/FilePlayer.js @@ -393,3 +393,13 @@ test('auto width/height', t => { )) }) + +test('clear srcObject on url change', t => { + const url = new MockMediaStream() + const wrapper = shallow() + const instance = wrapper.instance() + instance.player.removeAttribute = sinon.fake() + instance.load(url) + wrapper.setProps({ url: 'file.mpv' }) + t.true(instance.player.removeAttribute.calledOnceWith('srcObject')) +})