#angular #typescript #twitch
#angular #typescript #Twitch
Вопрос:
Я пытаюсь использовать Twitch API для встраивания канала в мое веб-приложение.
Инструкции следующие:
<html>
<body>
<!-- Add a placeholder for the Twitch embed -->
<div id="twitch-embed"></div>
<!-- Load the Twitch embed script -->
<script src="https://embed.twitch.tv/embed/v1.js"></script>
<!-- Create a Twitch.Embed object that will render within the "twitch-embed" root element. -->
<script type="text/javascript">
new Twitch.Embed("twitch-embed", {
width: 854,
height: 480,
channel: "monstercat"
});
</script>
</body>
</html>
Я включил https://embed.twitch.tv/embed/v1.js
файл в свою assets
папку и файл angular.json.
"scripts": [
"src/assets/twitch/twitch-embed-v1.js"
]
Мои файлы компонентов выглядят следующим образом:
import Twitch from '../../../../../assets/twitch/twitch-embed-v1';
export class TwitchPlayerComponent implements OnInit {
ngOnInit() {
const options = {
width: 854,
height: 480,
channel: '424976424',
};
const player = new Twitch.Embed('twitch-embed', options);
player.setVolume(0.5);
}
}
Скрипт отображается на панели «Мои исходные тексты» в Chrome devtools, но выдается следующая ошибка:
Embed is not a constructor
Что мешает правильному использованию скрипта?
Комментарии:
1. Пожалуйста, проверьте это: therichpost.com /…
Ответ №1:
Версия twitch v1 еще не содержит типизаций на TypeScript, это появится во v2. Вы не должны добавлять скрипты в свою папку assets. Что, если есть обновление от twitch? Вам придется обновить папку assets вручную.
В любом случае, я думаю, чтобы использовать twitch SDK, вы можете сделать следующее:
npm install twitch-js@next
И в вашем TS:
import * as Twitch from 'twitch-js';
new Twitch.Embed({...});
Комментарии:
1. Есть ли у вас рабочий stackblitz или код? Это был мой оригинальный подход, но приводит к той же ошибке. Я полагал, что перенос скрипта внутрь приведет к устранению переменных, а не к сохранению его таким образом в долгосрочной перспективе.
Ответ №2:
Я столкнулся с той же проблемой, и именно поэтому я решил реализовать оболочку Typescript для интерактивного встроенного проигрывателя Twitch. Это на 100% совместимо с Angular, поэтому, если вам все еще нужен способ добиться этого, пожалуйста, ознакомьтесь с этим репозиторием. Надеюсь, это поможет ^^