mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-11 05:26:15 -08:00
71 lines
2.9 KiB
Markdown
71 lines
2.9 KiB
Markdown
# artplayer-plugin-document-pip
|
|
|
|
Document PIP plugin for ArtPlayer
|
|
|
|
## Demo
|
|
|
|
[https://artplayer.org](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-document-pip/index.js&example=document.pip)
|
|
|
|
## TypeScript and module formats
|
|
|
|
```ts
|
|
import Artplayer from 'artplayer'
|
|
import type { AsyncResult } from 'artplayer-plugin-document-pip'
|
|
import documentPip from 'artplayer-plugin-document-pip'
|
|
|
|
const art = new Artplayer({
|
|
container: '#player',
|
|
url: 'video.mp4',
|
|
plugins: [documentPip({ width: 480, height: 270 })],
|
|
})
|
|
|
|
// Use this view for an unmodified plugin result when precise Promise types are needed.
|
|
const pip = art.plugins.artplayerPluginDocumentPip as AsyncResult
|
|
await pip.open()
|
|
await pip.close()
|
|
```
|
|
|
|
At runtime, options may be omitted. Width and height default to 480 and 270, and
|
|
`fallbackToVideoPiP` defaults to true. `placeholder` sets the text left in the
|
|
original player container while its document window is active.
|
|
|
|
The default `Result` retains the published writable boolean fields and void
|
|
actions so old assignments and inferred initializer types still compile.
|
|
At runtime, `isSupported` and `isActive` are readonly getters, `open` and `close`
|
|
return `Promise<void>`, and `toggle` returns `undefined`. The opt-in `AsyncResult`
|
|
describes those runtime values; it should not be applied to a mock or a result
|
|
whose methods have been replaced. It does not change any runtime behavior.
|
|
|
|
The default factory declaration keeps the exact published required-argument
|
|
signature, including assignment of an old replacement function to `typeof
|
|
documentPip`. Automatically adding an optional overload or a required `.default`
|
|
property would break such assignments. `Option`, `Result`, `AsyncResult`, `Factory`
|
|
and `RuntimeFactory` are available as named types. Use the explicit runtime view
|
|
to type omitted options, self `.default` access and precise async results:
|
|
|
|
```ts
|
|
import type { RuntimeFactory } from 'artplayer-plugin-document-pip'
|
|
const runtimeFactory = documentPip as RuntimeFactory
|
|
runtimeFactory() // precise initializer for the unmodified runtime factory
|
|
```
|
|
|
|
ESM uses the default import. CommonJS supports both `require(package)(options)`
|
|
and the historical `require(package).default(options)` shape; `.default` is the
|
|
same factory. The `/legacy` entry and generated browser editor declarations have
|
|
matching types. These syntax targets do not add native Document PiP support to
|
|
browsers that lack the API.
|
|
|
|
The historical TypeScript `import plugin = require(package)` module view retains
|
|
`plugin.default(options)`. Direct CommonJS calls are available at runtime; use
|
|
`RuntimeFactory` for an explicitly typed direct-call view.
|
|
|
|
## Maintenance
|
|
|
|
Source is split into strict TypeScript modules for window ownership, DOM migration,
|
|
styles and controls. See [ARCHITECTURE.md](ARCHITECTURE.md) for lifecycle behavior,
|
|
compatibility boundaries, tests and remaining native browser validation.
|
|
|
|
## License
|
|
|
|
MIT © Harvey Zhao
|