【发布时间】:2019-05-27 10:39:52
【问题描述】:
我正在尝试为 NativeScript Android 实现 BetterVideoPlayer (implementation 'com.github.halilozercan:BetterVideoPlayer:1.2.alpha1')。因此,在一个 Angular 项目中,我创建了这样的单独组件:
import { View } from "tns-core-modules/ui/core/view";
declare var com, android;
export class BetterPlayer extends View {
public mediaPlayer;
public createNativeView(): any {
const nativeView = new android.widget.FrameLayout(this._context);
nativeView.addView(this._openVideo());
// or return this._openVideo(); // still not working..
return nativeView;
}
public _openVideo() {
let url = android.net.Uri.parse("http://jzvd.nathen.cn/c6e3dc12a1154626b3476d9bf3bd7266/6b56c5f0dc31428083757a45764763b0-5287d2089db37e62345123a1be272f8b.mp4");
this.mediaPlayer = new com.halilibo.bettervideoplayer.BetterVideoPlayer(this._context);
console.dir(this.mediaPlayer);
this.mediaPlayer.setSource(url);
this.mediaPlayer.setAutoPlay(true);
this.mediaPlayer.setHideControlsOnPlay(true);
return this.mediaPlayer;
}
}
然后从组件我使用registerElement注册它
registerElement("BetterPlayer", () => BetterPlayer);
HTML:
<BetterPlayer height="200"></BetterPlayer>
但问题是,它没有显示播放器。只显示黑色区域。我在哪里做错了?请给我建议。提前致谢。
【问题讨论】:
-
我想知道你为什么将你的播放器添加到
FrameLayout,它的工作方式与其他 NativeScript 布局有点不同。 -
感谢您的回复。我试图直接添加它,但也没有工作。因此,我尝试从演示中进行操作,但没有任何效果。
-
Github 上有插件吗?
-
其实不是,我是直接使用nativescript angular项目。如果你愿意,我可以快速创建。
-
@Manoj,我为您的测试创建了一个 git 存储库。你可以从这里看看:github.com/jibon57/BetterVideoPlayer
src/app/item/items.component.html src/app/item/items.component.ts src/app/item/items.component.ts src/app/item/betterVideoPlayer.ts
标签: android nativescript angular2-nativescript