diff --git a/apidoc/Titanium/Media/VideoPlayer.yml b/apidoc/Titanium/Media/VideoPlayer.yml index b865b96d0eb..b0d9613b9f2 100644 --- a/apidoc/Titanium/Media/VideoPlayer.yml +++ b/apidoc/Titanium/Media/VideoPlayer.yml @@ -576,6 +576,7 @@ properties: summary: The type of media in the player's current item first track. exclude-platforms: [android] type: String + permission: read-only default: constants: Titanium.Media.VIDEO_MEDIA_TYPE_* @@ -625,7 +626,7 @@ properties: summary: Whether or not the receiver allows Picture in Picture playback. platforms: [iphone, ipad, macos] type: Boolean - default: false + default: true osver: {ios: {min: "9.0"}} - name: playableDuration diff --git a/iphone/Classes/TiMediaVideoPlayerProxy.m b/iphone/Classes/TiMediaVideoPlayerProxy.m index 07d722b8ac1..ab10c2b0638 100644 --- a/iphone/Classes/TiMediaVideoPlayerProxy.m +++ b/iphone/Classes/TiMediaVideoPlayerProxy.m @@ -446,12 +446,20 @@ - (void)requestThumbnailImagesAtTimes:(id)args - (NSNumber *)pictureInPictureEnabled { - return @([movie allowsPictureInPicturePlayback]); + if (movie) { + return @(movie.allowsPictureInPicturePlayback); + } else { + RETURN_FROM_LOAD_PROPERTIES(@"pictureInPictureEnabled", @YES); + } } - (void)setPictureInPictureEnabled:(NSNumber *)value { - [movie setAllowsPictureInPicturePlayback:[TiUtils boolValue:value]]; + if (movie) { + movie.allowsPictureInPicturePlayback = [TiUtils boolValue:value def:YES]; + } else { + [loadProperties setValue:value forKey:@"pictureInPictureEnabled"]; + } } - (NSNumber *)showsControls diff --git a/tests/Resources/ti.media.videoplayer.test.js b/tests/Resources/ti.media.videoplayer.test.js index e0d141daa81..c923a611cda 100644 --- a/tests/Resources/ti.media.videoplayer.test.js +++ b/tests/Resources/ti.media.videoplayer.test.js @@ -133,7 +133,7 @@ describe('Titanium.Media.VideoPlayer', () => { describe.ios('.mediaTypes', () => { it('is a String', () => { - should(player).have.a.property('mediaTypes').which.is.a.String(); + should(player).have.a.readOnlyProperty('mediaTypes').which.is.a.String(); }); it('is one of Ti.Media.VIDEO_MEDIA_TYPE_*', () => { @@ -189,7 +189,7 @@ describe('Titanium.Media.VideoPlayer', () => { }); it('defaults to false', () => { // eslint-disable-line mocha/no-identical-title - should(player.pictureInPictureEnabled).be.false(); + should(player.pictureInPictureEnabled).be.true(); }); });