init
This commit is contained in:
57
hbuilder_app/nativeplugins/SyncTV-VLC/README.md
Normal file
57
hbuilder_app/nativeplugins/SyncTV-VLC/README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# SyncTV VLC Native Plugin
|
||||
|
||||
HBuilder/uni-app cannot call VLC directly from Vue/JavaScript. The app needs a native plugin layer:
|
||||
|
||||
```text
|
||||
uni-app UI
|
||||
-> SyncTV-VLC plugin JS facade
|
||||
-> Android native module: libVLC
|
||||
-> iOS native module: MobileVLCKit / VLCKit
|
||||
```
|
||||
|
||||
The Vue page should only call the facade API below. The plugin implementation can then be filled in per platform without changing room/sync UI code.
|
||||
|
||||
## JS Facade API
|
||||
|
||||
```js
|
||||
const player = uni.requireNativePlugin('SyncTV-VLC')
|
||||
|
||||
player.open({
|
||||
url,
|
||||
headers,
|
||||
username,
|
||||
password,
|
||||
isLive
|
||||
})
|
||||
|
||||
player.play()
|
||||
player.pause()
|
||||
player.seek({ positionMs: 120000 })
|
||||
player.getPosition((result) => {
|
||||
console.log(result.positionMs)
|
||||
})
|
||||
player.release()
|
||||
```
|
||||
|
||||
## Android Implementation Target
|
||||
|
||||
- Use `org.videolan.android:libvlc-all`.
|
||||
- Expose methods through a uni-app native plugin module.
|
||||
- Render into a native view component if possible.
|
||||
- Support:
|
||||
- HTTP/HTTPS URL.
|
||||
- m3u8.
|
||||
- WebDAV Basic Auth.
|
||||
- Custom headers.
|
||||
- Live stream.
|
||||
- play/pause/seek/getPosition.
|
||||
|
||||
## iOS Implementation Target
|
||||
|
||||
- Use MobileVLCKit / VLCKit.
|
||||
- Expose equivalent plugin methods.
|
||||
- Render through native view component.
|
||||
|
||||
## Fallback
|
||||
|
||||
The current page keeps a `<video>` fallback for development preview. Production app playback should use this native plugin because the built-in video component still depends on system/WebView media support.
|
||||
Reference in New Issue
Block a user