-
First Check
Example Codefrom nicegui import ui
aplayer_js = "https://cdn.jsdelivr.net/npm/[email protected]/dist/APlayer.min.js"
aplayer_css = "https://cdn.jsdelivr.net/npm/[email protected]/dist/APlayer.min.css"
ui.add_head_html(f'''
<link rel="stylesheet" href="{aplayer_css}">
<script src="{aplayer_js}"></script>
''')
music_data = [
{
"name": "歌曲1",
"artist": "歌手1",
"url": "https://music.163.com/song/media/outer/url?id=490602354.mp3",
"cover": "https://p1.music.126.net/xxxx.jpg"
},
{
"name": "歌曲2",
"artist": "歌手2",
"url": "https://music.163.com/song/media/outer/url?id=1359356908.mp3",
"cover": "https://p1.music.126.net/xxxx.jpg"
}
]
ui.add_body_html(f'''
<div id="aplayer"></div>
<script>
const ap = new APlayer({{
container: document.getElementById('aplayer'),
audio: {music_data}
}});
</script>
''')
ui.run() DescriptionHow to use the API of APLayer? For example, using: ap.play()
ap.pause()
ap.list.add([{
name: 'name',
artist: 'artist',
url: 'url.mp3',
cover: 'cover.jpg',
lrc: 'lrc.lrc',
theme: '#ebd0c2'
}]); NiceGUI Version2.15.0 Python Version3.11.5 BrowserChrome, Firefox Operating SystemWindows Additional ContextNo response |
Beta Was this translation helpful? Give feedback.
Answered by
evnchn
Apr 27, 2025
Replies: 1 comment 2 replies
-
@SHDocter Thank you. Use But you need to do the following:
from nicegui import ui
aplayer_js = "https://cdn.jsdelivr.net/npm/[email protected]/dist/APlayer.min.js"
aplayer_css = "https://cdn.jsdelivr.net/npm/[email protected]/dist/APlayer.min.css"
@ui.page("/")
def main_page():
ui.add_head_html(f'''
<link rel="stylesheet" href="{aplayer_css}">
<script src="{aplayer_js}"></script>
''')
music_data = [
{
"name": "歌曲1",
"artist": "歌手1",
"url": "https://music.163.com/song/media/outer/url?id=490602354.mp3",
"cover": "https://p1.music.126.net/xxxx.jpg"
},
{
"name": "歌曲2",
"artist": "歌手2",
"url": "https://music.163.com/song/media/outer/url?id=1359356908.mp3",
"cover": "https://p1.music.126.net/xxxx.jpg"
}
]
ui.add_body_html(f'''
<div id="aplayer"></div>
<script>
window.my_ap = new APlayer({{
container: document.getElementById('aplayer'),
audio: {music_data}
}});
</script>
''')
# for ap.play()
ui.button("Play", on_click=lambda: ui.run_javascript("my_ap.play()"))
# for ap.pause()
ui.button("Pause", on_click=lambda: ui.run_javascript("my_ap.pause()"))
ui.run() ![]() |
Beta Was this translation helpful? Give feedback.
2 replies
Answer selected by
SHDocter
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@SHDocter Thank you.
Use
ui.run_javascript
to run JavaScript and invoke the JavaScript API of APlayer.But you need to do the following:
@ui.page
page decorator forui.run_javascript
to work properly as of now.