go-musicfox / go-musicfox

go-musicfox是用Go写的又一款网易云音乐命令行客户端,支持UnblockNeteaseMusic、各种音质级别、lastfm、MPRIS、MacOS交互响应(睡眠暂停、蓝牙耳机连接断开响应、菜单栏控制等)...
MIT License
1.63k stars 105 forks source link

播放會 panic: Terminating app due to uncaught exception #147

Closed fuyu0425 closed 1 year ago

fuyu0425 commented 1 year ago

Check for existing issues

检查是否已存在相同issue

Describe the bug and provide steps to reproduce it

描述遇到的bug并提供相应的复现方法

只要播音樂就會 Crash。 engine=osx 還沒有聲音就 crash了。 engine=mpd 有聲音之後 crash。 所以代表 mpd 有收到。

Environment / 运行环境

直接 download的 pre-built binary Version: v4.1.2. 從 Master source build 的也是同樣錯誤。

OS: macOS 10.15.6 Catalina (不知是不是版本太舊?看起來是 system call 是出問題) CPU: amd64

If applicable, list the error messages you see

如果有错误输出请一并填入

以下為 trace.

2023-07-10 04:25:29.303 musicfox[68501:13178880] -[MPMediaItemArtwork initWithImage:]: unrecognized selector sent to instance 0x50e6910..................... 00:00/04:31
2023-07-10 04:25:29.303 musicfox[68501:13178880] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MPMediaItemArtwork initWithImage:]: unrecognized selector sent to instance 0x50e6910'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff3582edd7 __exceptionPreprocess + 250
    1   libobjc.A.dylib                     0x00007fff6d6895bf objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff358adf07 -[NSObject(NSObject) __retain_OA] + 0
    3   CoreFoundation                      0x00007fff3579362b ___forwarding___ + 1427
    4   CoreFoundation                      0x00007fff35793008 _CF_forwarding_prep_0 + 120
    5   musicfox                            0x00000000044e95b4 syscall9X + 116
    6   musicfox                            0x00000000040694a4 runtime.asmcgocall.abi0 + 100
)
libc++abi.dylib: terminating with uncaught exception of type NSException
SIGABRT: abort
PC=0x7fff6e97932a m=12 sigcode=0
signal arrived during cgo execution

goroutine 51 [syscall]:
runtime.cgocall(0x44e9540, 0xc0005282c0)
    /usr/local/go/src/runtime/cgocall.go:157 +0x5c fp=0xc00010f248 sp=0xc00010f210 pc=0x4004cfc
github.com/ebitengine/purego.RegisterFunc.func1({0xc00058c4b0?, 0x3?, 0x8?})
    /go/src/go-musicfox/vendor/github.com/ebitengine/purego/func.go:188 +0x4e5 fp=0xc00010f5a0 sp=0xc00010f248 pc=0x44e7ca5
reflect.callReflect(0xc000198de0, 0xc00010fb00, 0xc00010f9d8, 0xc00010f9e0)
    /usr/local/go/src/reflect/value.go:742 +0x56a fp=0xc00010f988 sp=0xc00010f5a0 pc=0x4095caa
reflect.callReflect(0xc000198de0, 0xc00010fb00, 0xc00010f9d8, 0xc00010f9e0)
    <autogenerated>:1 +0x4b fp=0xc00010f9b8 sp=0xc00010f988 pc=0x40a0f2b
reflect.makeFuncStub()
    /usr/local/go/src/reflect/asm_amd64.s:47 +0x7a fp=0xc00010fb00 sp=0xc00010f9b8 pc=0x40a0d9a
github.com/ebitengine/purego/objc.ID.Send(...)
    /go/src/go-musicfox/vendor/github.com/ebitengine/purego/objc/objc_runtime_darwin.go:82
github.com/go-musicfox/go-musicfox/pkg/macdriver/mediaplayer.MPMediaItemArtwork.InitWithImage(...)
    /go/src/go-musicfox/pkg/macdriver/mediaplayer/mpmediaitemartwork.go:38
github.com/go-musicfox/go-musicfox/pkg/state_handler.(*Handler).SetPlayingInfo(0xc00038c040, {0x3f4d6e1680, 0x0, 0x1, 0x64, 0x15b9375, {0xc00028e410, 0x47}, {0xc000282720, 0xb}, ...})
    /go/src/go-musicfox/pkg/state_handler/state_handler_darwin.go:125 +0xcbb fp=0xc00010fd48 sp=0xc00010fb00 pc=0x459c75b
github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer.func2()
    /go/src/go-musicfox/pkg/ui/player.go:121 +0x1b8 fp=0xc00010ffe0 sp=0xc00010fd48 pc=0x45bfa58
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc00010ffe8 sp=0xc00010ffe0 pc=0x40697c1
created by github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer
    /go/src/go-musicfox/pkg/ui/player.go:114 +0x22a

goroutine 1 [syscall]:
github.com/ebitengine/purego.RegisterFunc.func1({0xc000109130?, 0x3?, 0x8?})
    /go/src/go-musicfox/vendor/github.com/ebitengine/purego/func.go:188 +0x4e5
github.com/ebitengine/purego/objc.ID.Send(...)
    /go/src/go-musicfox/vendor/github.com/ebitengine/purego/objc/objc_runtime_darwin.go:82
github.com/go-musicfox/go-musicfox/pkg/macdriver/cocoa.NSApplication.Run(...)
    /go/src/go-musicfox/pkg/macdriver/cocoa/nsapplication.go:78
github.com/go-musicfox/go-musicfox/pkg/entry.AppEntry()
    /go/src/go-musicfox/pkg/entry/entry_darwin.go:30 +0x1aa
main.main()
    /go/src/go-musicfox/cmd/musicfox.go:8 +0x17

goroutine 4 [select, locked to thread]:
github.com/charmbracelet/bubbletea.(*Program).eventLoop(0xc0003ba000, {0x49420a0?, 0xc000290600?}, 0x4940cb8?)
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:262 +0x107
github.com/charmbracelet/bubbletea.(*Program).Run(0xc0003ba000)
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:465 +0x7ca
github.com/go-musicfox/go-musicfox/pkg/commands.runPlayer(0xc0002e40c0?, {0xc000296280?, 0x0?, 0x0?})
    /go/src/go-musicfox/pkg/commands/netease.go:47 +0x1ae
github.com/gookit/gcli/v2.(*Command).execute(0xc0002e4000, {0xc000296280, 0x0, 0x0})
    /go/src/go-musicfox/vendor/github.com/gookit/gcli/v2/cmd.go:243 +0x104
github.com/gookit/gcli/v2.(*App).doRun(0xc00029a000, {0x470dfba, 0x7}, {0xc000296280, 0x0, 0x0})
    /go/src/go-musicfox/vendor/github.com/gookit/gcli/v2/app_run.go:173 +0x429
github.com/gookit/gcli/v2.(*App).Run(0xc00029a000)
    /go/src/go-musicfox/vendor/github.com/gookit/gcli/v2/app_run.go:126 +0x2ee
github.com/go-musicfox/go-musicfox/pkg/entry.runCLI()
    /go/src/go-musicfox/pkg/entry/cli.go:50 +0x325
github.com/go-musicfox/go-musicfox/pkg/entry.AppEntry.func1.1.1()
    /go/src/go-musicfox/pkg/entry/entry_darwin.go:24 +0x26
github.com/go-musicfox/go-musicfox/pkg/macdriver/core.Autorelease(0xc000080fb8)
    /go/src/go-musicfox/pkg/macdriver/core/core.go:77 +0x8f
github.com/go-musicfox/go-musicfox/pkg/entry.AppEntry.func1.1()
    /go/src/go-musicfox/pkg/entry/entry_darwin.go:23 +0x5b
created by github.com/go-musicfox/go-musicfox/pkg/entry.AppEntry.func1
    /go/src/go-musicfox/pkg/entry/entry_darwin.go:21 +0x45

goroutine 35 [IO wait]:
internal/poll.runtime_pollWait(0x2d9bafd0, 0x72)
    /usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc0002dc380?, 0xc000316000?, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc0002dc380, {0xc000316000, 0x1000, 0x1000})
    /usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc0002dc380, {0xc000316000?, 0x1?, 0xc000085a88?})
    /usr/local/go/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc0002840a0, {0xc000316000?, 0xc0002e61a0?, 0x200000003?})
    /usr/local/go/src/net/net.go:183 +0x45
bufio.(*Reader).fill(0xc000290960)
    /usr/local/go/src/bufio/bufio.go:106 +0x103
bufio.(*Reader).ReadSlice(0xc000290960, 0x10?)
    /usr/local/go/src/bufio/bufio.go:371 +0x2f
bufio.(*Reader).ReadLine(0xc000290960)
    /usr/local/go/src/bufio/bufio.go:400 +0x27
net/textproto.(*Reader).readLineSlice(0xc0002d0510)
    /usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
    /usr/local/go/src/net/textproto/reader.go:38
github.com/fhs/gompd/v2/mpd.(*Client).readLine(0xc000085d78?)
    /go/src/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/client.go:183 +0x30
github.com/fhs/gompd/v2/mpd.(*Client).readList(0xc0002d0570?, {0x470d9c4?, 0x11?})
    /go/src/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/client.go:167 +0x87
github.com/fhs/gompd/v2/mpd.(*Command).Strings(0xc0000e23a8, {0x470d9c4, 0x7})
    /go/src/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/response.go:86 +0x15b
github.com/fhs/gompd/v2/mpd.(*Client).idle(0xc000085f58?, {0xc0002b47c0?, 0x65?, 0x0?})
    /go/src/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/client.go:361 +0x8c
github.com/fhs/gompd/v2/mpd.(*Watcher).watch(0xc000298c60, {0xc0002b47c0?, 0x410380a?, 0x48914b8?})
    /go/src/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/watcher.go:46 +0xc7
created by github.com/fhs/gompd/v2/mpd.NewWatcher
    /go/src/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/watcher.go:36 +0x1f0

goroutine 36 [select]:
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).listen(0xc000318000)
    /go/src/go-musicfox/pkg/player/mpd_player.go:161 +0xdb
github.com/go-musicfox/go-musicfox/pkg/player.NewMpdPlayer.func1()
    /go/src/go-musicfox/pkg/player/mpd_player.go:92 +0x3f
created by github.com/go-musicfox/go-musicfox/pkg/player.NewMpdPlayer
    /go/src/go-musicfox/pkg/player/mpd_player.go:90 +0x425

goroutine 37 [select]:
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).setState(0x4651d40?, 0x0?)
    /go/src/go-musicfox/pkg/player/mpd_player.go:221 +0x7f
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).SyncMpdStatus(0xc000318000, {0xc000744119, 0x6})
    /go/src/go-musicfox/pkg/player/mpd_player.go:129 +0x17d
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).watch(0xc000318000)
    /go/src/go-musicfox/pkg/player/mpd_player.go:213 +0xd0
github.com/go-musicfox/go-musicfox/pkg/player.NewMpdPlayer.func2()
    /go/src/go-musicfox/pkg/player/mpd_player.go:97 +0x3f
created by github.com/go-musicfox/go-musicfox/pkg/player.NewMpdPlayer
    /go/src/go-musicfox/pkg/player/mpd_player.go:95 +0x465

goroutine 50 [select]:
github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer.func1()
    /go/src/go-musicfox/pkg/ui/player.go:104 +0xf4
created by github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer
    /go/src/go-musicfox/pkg/ui/player.go:101 +0x1ca

goroutine 52 [select]:
github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer.func3()
    /go/src/go-musicfox/pkg/ui/player.go:141 +0x125
created by github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer
    /go/src/go-musicfox/pkg/ui/player.go:138 +0x28a

goroutine 53 [select]:
github.com/charmbracelet/bubbletea.(*Program).handleSignals.func1()
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:191 +0x15a
created by github.com/charmbracelet/bubbletea.(*Program).handleSignals
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:182 +0x85

goroutine 20 [syscall]:
os/signal.signal_recv()
    /usr/local/go/src/runtime/sigqueue.go:148 +0x28
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:23 +0x19
created by os/signal.Notify.func1.1
    /usr/local/go/src/os/signal/signal.go:151 +0x2a

goroutine 56 [syscall]:
syscall.syscall6(0x46be201?, 0xc0000d0b10?, 0x40fc5cb?, 0x4660980?, 0x45deebf?, 0x0?, 0x45deebd?)
    /usr/local/go/src/runtime/sys_darwin.go:44 +0x6a
golang.org/x/sys/unix.kevent(0xc0002a0e40?, 0xc0000ac500?, 0x36441ba8?, 0x8?, 0x203000?, 0x203000?)
    /go/src/go-musicfox/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go:276 +0x52
golang.org/x/sys/unix.Kevent(0xc0000d0be0?, {0xc00038e288?, 0x0?, 0x400ed67?}, {0xc0000d0bd0?, 0xc0000d0ba8?, 0x4498366?}, 0x36441ba8?)
    /go/src/go-musicfox/vendor/golang.org/x/sys/unix/syscall_bsd.go:398 +0x3c
github.com/muesli/cancelreader.(*kqueueCancelReader).wait(0xc00038e240)
    /go/src/go-musicfox/vendor/github.com/muesli/cancelreader/cancelreader_bsd.go:125 +0x6d
github.com/muesli/cancelreader.(*kqueueCancelReader).Read(0xc00038e240, {0xc000434e00, 0x100, 0x100})
    /go/src/go-musicfox/vendor/github.com/muesli/cancelreader/cancelreader_bsd.go:69 +0x52
github.com/charmbracelet/bubbletea.readInputs({0x56c50c0, 0xc00038e240})
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/key.go:572 +0x71
github.com/charmbracelet/bubbletea.(*Program).readLoop(0xc0003ba000)
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tty.go:79 +0xda
created by github.com/charmbracelet/bubbletea.(*Program).initCancelReader
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tty.go:66 +0xe5

goroutine 58 [select]:
github.com/charmbracelet/bubbletea.(*Program).listenForResize(0xc0003ba000, 0xc0003b8cc0)
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/signals_unix.go:25 +0x13a
created by github.com/charmbracelet/bubbletea.(*Program).handleResize
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:216 +0x18a

goroutine 59 [select]:
github.com/charmbracelet/bubbletea.(*Program).handleCommands.func1()
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:233 +0xe5
created by github.com/charmbracelet/bubbletea.(*Program).handleCommands
    /go/src/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:229 +0xaa

goroutine 232 [IO wait]:
internal/poll.runtime_pollWait(0x2d9bab20, 0x72)
    /usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc0002dc300?, 0xc0004ce000?, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc0002dc300, {0xc0004ce000, 0x115a, 0x115a})
    /usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc0002dc300, {0xc0004ce000?, 0xc00007ae60?, 0xc0004ce342?})
    /usr/local/go/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc000010028, {0xc0004ce000?, 0x5?, 0xc000087818?})
    /usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc0004804e0, {0xc0004ce000?, 0x0?, 0x8?})
    /usr/local/go/src/crypto/tls/conn.go:784 +0x3d
bytes.(*Buffer).ReadFrom(0xc000163778, {0x493d900, 0xc0004804e0})
    /usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000163500, {0x36322698?, 0xc000010028}, 0xe1d?)
    /usr/local/go/src/crypto/tls/conn.go:806 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000163500, 0x0)
    /usr/local/go/src/crypto/tls/conn.go:613 +0x116
crypto/tls.(*Conn).readRecord(...)
    /usr/local/go/src/crypto/tls/conn.go:581
crypto/tls.(*Conn).Read(0xc000163500, {0xc0004d8000, 0x1000, 0x42b2da0?})
    /usr/local/go/src/crypto/tls/conn.go:1284 +0x16f
bufio.(*Reader).Read(0xc0000b5860, {0xc0004a8580, 0x9, 0x42cf762?})
    /usr/local/go/src/bufio/bufio.go:236 +0x1b4
io.ReadAtLeast({0x493d780, 0xc0000b5860}, {0xc0004a8580, 0x9, 0x9}, 0x9)
    /usr/local/go/src/io/io.go:331 +0x9a
io.ReadFull(...)
    /usr/local/go/src/io/io.go:350
net/http.http2readFrameHeader({0xc0004a8580?, 0x9?, 0xc00047f440?}, {0x493d780?, 0xc0000b5860?})
    /usr/local/go/src/net/http/h2_bundle.go:1566 +0x6e
net/http.(*http2Framer).ReadFrame(0xc0004a8540)
    /usr/local/go/src/net/http/h2_bundle.go:1830 +0x95
net/http.(*http2clientConnReadLoop).run(0xc000087f98)
    /usr/local/go/src/net/http/h2_bundle.go:8815 +0x130
net/http.(*http2ClientConn).readLoop(0xc000158780)
    /usr/local/go/src/net/http/h2_bundle.go:8711 +0x6f
created by net/http.(*http2Transport).newClientConn
    /usr/local/go/src/net/http/h2_bundle.go:7439 +0xa65

goroutine 146 [IO wait]:
internal/poll.runtime_pollWait(0x2d9bac10, 0x72)
    /usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc0002dd480?, 0xc000017000?, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc0002dd480, {0xc000017000, 0xfef, 0xfef})
    /usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc0002dd480, {0xc000017000?, 0xc0001cc8e0?, 0xc000017a39?})
    /usr/local/go/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc000488030, {0xc000017000?, 0x4015aa6?, 0x5223300?})
    /usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc000286690, {0xc000017000?, 0x0?, 0x53fffff?})
    /usr/local/go/src/crypto/tls/conn.go:784 +0x3d
bytes.(*Buffer).ReadFrom(0xc000100978, {0x493d900, 0xc000286690})
    /usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000100700, {0x36322698?, 0xc000488030}, 0x5c3?)
    /usr/local/go/src/crypto/tls/conn.go:806 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000100700, 0x0)
    /usr/local/go/src/crypto/tls/conn.go:613 +0x116
crypto/tls.(*Conn).readRecord(...)
    /usr/local/go/src/crypto/tls/conn.go:581
crypto/tls.(*Conn).Read(0xc000100700, {0xc0002ff000, 0x1000, 0x42b2da0?})
    /usr/local/go/src/crypto/tls/conn.go:1284 +0x16f
bufio.(*Reader).Read(0xc000106e40, {0xc0003ac120, 0x9, 0x42cf762?})
    /usr/local/go/src/bufio/bufio.go:236 +0x1b4
io.ReadAtLeast({0x493d780, 0xc000106e40}, {0xc0003ac120, 0x9, 0x9}, 0x9)
    /usr/local/go/src/io/io.go:331 +0x9a
io.ReadFull(...)
    /usr/local/go/src/io/io.go:350
net/http.http2readFrameHeader({0xc0003ac120?, 0x9?, 0xc000458960?}, {0x493d780?, 0xc000106e40?})
    /usr/local/go/src/net/http/h2_bundle.go:1566 +0x6e
net/http.(*http2Framer).ReadFrame(0xc0003ac0e0)
    /usr/local/go/src/net/http/h2_bundle.go:1830 +0x95
net/http.(*http2clientConnReadLoop).run(0xc000115f98)
    /usr/local/go/src/net/http/h2_bundle.go:8815 +0x130
net/http.(*http2ClientConn).readLoop(0xc0002e4480)
    /usr/local/go/src/net/http/h2_bundle.go:8711 +0x6f
created by net/http.(*http2Transport).newClientConn
    /usr/local/go/src/net/http/h2_bundle.go:7439 +0xa65

goroutine 236 [select]:
github.com/go-musicfox/go-musicfox/utils.(*Timer).Run(0xc0002dc400)
    /go/src/go-musicfox/utils/timer.go:78 +0x23d
created by github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).SyncMpdStatus
    /go/src/go-musicfox/pkg/player/mpd_player.go:127 +0x16b

goroutine 171 [IO wait]:
internal/poll.runtime_pollWait(0x2d9bb0c0, 0x72)
    /usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc0002dc100?, 0xc0001ee000?, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc0002dc100, {0xc0001ee000, 0xe63, 0xe63})
    /usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc0002dc100, {0xc0001ee000?, 0x4683e01?, 0xc0001cd1e0?})
    /usr/local/go/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc000010038, {0xc0001ee000?, 0x8f3?, 0xc0001cd1e0?})
    /usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc000286090, {0xc0001ee000?, 0xc000497860?, 0x34?})
    /usr/local/go/src/crypto/tls/conn.go:784 +0x3d
bytes.(*Buffer).ReadFrom(0xc000100cf8, {0x493d900, 0xc000286090})
    /usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000100a80, {0x36322698?, 0xc000010038}, 0x522a700?)
    /usr/local/go/src/crypto/tls/conn.go:806 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000100a80, 0x0)
    /usr/local/go/src/crypto/tls/conn.go:613 +0x116
crypto/tls.(*Conn).readRecord(...)
    /usr/local/go/src/crypto/tls/conn.go:581
crypto/tls.(*Conn).Read(0xc000100a80, {0xc0001b4000, 0x1000, 0x42b2da0?})
    /usr/local/go/src/crypto/tls/conn.go:1284 +0x16f
bufio.(*Reader).Read(0xc0003896e0, {0xc0003ac740, 0x9, 0x42cf762?})
    /usr/local/go/src/bufio/bufio.go:236 +0x1b4
io.ReadAtLeast({0x493d780, 0xc0003896e0}, {0xc0003ac740, 0x9, 0x9}, 0x9)
    /usr/local/go/src/io/io.go:331 +0x9a
io.ReadFull(...)
    /usr/local/go/src/io/io.go:350
net/http.http2readFrameHeader({0xc0003ac740?, 0x9?, 0xc000536120?}, {0x493d780?, 0xc0003896e0?})
    /usr/local/go/src/net/http/h2_bundle.go:1566 +0x6e
net/http.(*http2Framer).ReadFrame(0xc0003ac700)
    /usr/local/go/src/net/http/h2_bundle.go:1830 +0x95
net/http.(*http2clientConnReadLoop).run(0xc0000d1f98)
    /usr/local/go/src/net/http/h2_bundle.go:8815 +0x130
net/http.(*http2ClientConn).readLoop(0xc0002e4780)
    /usr/local/go/src/net/http/h2_bundle.go:8711 +0x6f
created by net/http.(*http2Transport).newClientConn
    /usr/local/go/src/net/http/h2_bundle.go:7439 +0xa65

rax    0x0
rbx    0x700001e3f000
rcx    0x700001e3d5e8
rdx    0x0
rdi    0x8413
rsi    0x6
rbp    0x700001e3d610
rsp    0x700001e3d5e8
r8     0x700001e3d4b0
r9     0x700001e3d680
r10    0x700001e3f000
r11    0x246
r12    0x8413
r13    0x3000000008
r14    0x6
r15    0x16
rip    0x7fff6e97932a
rflags 0x246
cs     0x7
fs     0x0
gs     0x0

If applicable, attach your ${MUSICFOX_ROOT}/musicfox.log file to this issue.

如果${MUSICFOX_ROOT}/musicfox.log里有错误日志,请一并上传

2023/07/10 04:34:20 [ERROR] Lastfm other err: empty session key github.com/go-musicfox/go-musicfox/pkg/lastfm.(*Client).UpdateNowPlaying /go/src/go-musicfox/pkg/lastfm/api.go:89 github.com/go-musicfox/go-musicfox/pkg/lastfm.Report.func1 /go/src/go-musicfox/pkg/lastfm/api.go:146 runtime.goexit /usr/local/go/src/runtime/asm_amd64.s:1571

anhoder commented 1 year ago

这个问题已经修复了,看报错的调用栈应该是旧版

fuyu0425 commented 1 year ago
2023-07-10 05:37:50.322 musicfox[87539:13587991] -[MPMediaItemArtwork initWithImage:]: unrecognized selector sent to instance 0x129755840................... 00:00/04:31
2023-07-10 05:37:50.322 musicfox[87539:13587991] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MPMediaItemArtwork initWithImage:]: unrecognized selector sent to instance 0x129755840'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff3582edd7 __exceptionPreprocess + 250
    1   libobjc.A.dylib                     0x00007fff6d6895bf objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff358adf07 -[NSObject(NSObject) __retain_OA] + 0
    3   CoreFoundation                      0x00007fff3579362b ___forwarding___ + 1427
    4   CoreFoundation                      0x00007fff35793008 _CF_forwarding_prep_0 + 120
    5   musicfox                            0x00000001004e0c34 syscall9X + 116
    6   musicfox                            0x000000010006f5a4 runtime.asmcgocall.abi0 + 100
)
libc++abi.dylib: terminating with uncaught exception of type NSException
SIGABRT: abort
PC=0x7fff6e97932a m=15 sigcode=0
signal arrived during cgo execution

goroutine 35 [syscall]:
runtime.cgocall(0x1004e0bc0, 0xc00072f810)
    /opt/local/lib/go/src/runtime/cgocall.go:157 +0x5c fp=0xc0007292b0 sp=0xc000729278 pc=0x10000709c
github.com/ebitengine/purego.RegisterFunc.func1({0xc0007305a0?, 0x3?, 0x8?})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/ebitengine/purego/func.go:188 +0xc45 fp=0xc0007295b0 sp=0xc0007292b0 pc=0x1004df9a5
reflect.callReflect(0xc00024c660, 0xc000729b18, 0xc0007299f0, 0xc0007299f8)
    /opt/local/lib/go/src/reflect/value.go:772 +0x56d fp=0xc0007299a0 sp=0xc0007295b0 pc=0x1000a41ed
reflect.callReflect(0xc00024c660, 0xc000729b18, 0xc0007299f0, 0xc0007299f8)
    <autogenerated>:1 +0x4b fp=0xc0007299d0 sp=0xc0007299a0 pc=0x1000b71cb
reflect.makeFuncStub()
    /opt/local/lib/go/src/reflect/asm_amd64.s:47 +0x7a fp=0xc000729b18 sp=0xc0007299d0 pc=0x1000b11da
github.com/ebitengine/purego/objc.ID.Send(...)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/ebitengine/purego/objc/objc_runtime_darwin.go:82
github.com/go-musicfox/go-musicfox/pkg/macdriver/mediaplayer.MPMediaItemArtwork.InitWithImage(...)
    /Users/fuyu0425/tools/go-musicfox/pkg/macdriver/mediaplayer/mpmediaitemartwork.go:38
github.com/go-musicfox/go-musicfox/pkg/state_handler.(*Handler).SetPlayingInfo(0xc000416000, {0x3f4d6e1680, 0x0, 0x1, 0x64, 0x15b9375, {0xc00022c500, 0x47}, {0xc0002ad8d0, 0xb}, ...})
    /Users/fuyu0425/tools/go-musicfox/pkg/state_handler/state_handler_darwin.go:126 +0xca3 fp=0xc000729d60 sp=0xc000729b18 pc=0x100597fa3
github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer.func2()
    /Users/fuyu0425/tools/go-musicfox/pkg/ui/player.go:121 +0x1b8 fp=0xc000729fe0 sp=0xc000729d60 pc=0x1005bd778
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000729fe8 sp=0xc000729fe0 pc=0x10006f8c1
created by github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer
    /Users/fuyu0425/tools/go-musicfox/pkg/ui/player.go:114 +0x238

goroutine 1 [syscall]:
runtime.cgocall(0x1004e0bc0, 0xc0002b26e0)
    /opt/local/lib/go/src/runtime/cgocall.go:157 +0x5c fp=0xc00021b698 sp=0xc00021b660 pc=0x10000709c
github.com/ebitengine/purego.RegisterFunc.func1({0xc0001814f0?, 0x3?, 0x8?})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/ebitengine/purego/func.go:188 +0xc45 fp=0xc00021b998 sp=0xc00021b698 pc=0x1004df9a5
reflect.callReflect(0xc00024c660, 0xc00021bf00, 0xc00021bdd8, 0xc00021bde0)
    /opt/local/lib/go/src/reflect/value.go:772 +0x56d fp=0xc00021bd88 sp=0xc00021b998 pc=0x1000a41ed
reflect.callReflect(0xc00024c660, 0xc00021bf00, 0xc00021bdd8, 0xc00021bde0)
    <autogenerated>:1 +0x4b fp=0xc00021bdb8 sp=0xc00021bd88 pc=0x1000b71cb
reflect.makeFuncStub()
    /opt/local/lib/go/src/reflect/asm_amd64.s:47 +0x7a fp=0xc00021bf00 sp=0xc00021bdb8 pc=0x1000b11da
github.com/ebitengine/purego/objc.ID.Send(...)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/ebitengine/purego/objc/objc_runtime_darwin.go:82
github.com/go-musicfox/go-musicfox/pkg/macdriver/cocoa.NSApplication.Run(...)
    /Users/fuyu0425/tools/go-musicfox/pkg/macdriver/cocoa/nsapplication.go:78
github.com/go-musicfox/go-musicfox/pkg/entry.AppEntry()
    /Users/fuyu0425/tools/go-musicfox/pkg/entry/entry_darwin.go:30 +0x19e fp=0xc00021bf70 sp=0xc00021bf00 pc=0x100612e3e
main.main()
    /Users/fuyu0425/tools/go-musicfox/cmd/musicfox.go:8 +0x17 fp=0xc00021bf80 sp=0xc00021bf70 pc=0x100613197
runtime.main()
    /opt/local/lib/go/src/runtime/proc.go:250 +0x207 fp=0xc00021bfe0 sp=0xc00021bf80 pc=0x10003ba27
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc00021bfe8 sp=0xc00021bfe0 pc=0x10006f8c1

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000084fb0 sp=0xc000084f90 pc=0x10003be56
runtime.goparkunlock(...)
    /opt/local/lib/go/src/runtime/proc.go:387
runtime.forcegchelper()
    /opt/local/lib/go/src/runtime/proc.go:305 +0xb0 fp=0xc000084fe0 sp=0xc000084fb0 pc=0x10003bc90
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000084fe8 sp=0xc000084fe0 pc=0x10006f8c1
created by runtime.init.6
    /opt/local/lib/go/src/runtime/proc.go:293 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000085780 sp=0xc000085760 pc=0x10003be56
runtime.goparkunlock(...)
    /opt/local/lib/go/src/runtime/proc.go:387
runtime.bgsweep(0x0?)
    /opt/local/lib/go/src/runtime/mgcsweep.go:319 +0xde fp=0xc0000857c8 sp=0xc000085780 pc=0x100026d7e
runtime.gcenable.func1()
    /opt/local/lib/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000857e0 sp=0xc0000857c8 pc=0x10001bfa6
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0000857e8 sp=0xc0000857e0 pc=0x10006f8c1
created by runtime.gcenable
    /opt/local/lib/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xa4aa88b737a3?, 0x2c4f46?, 0x0?, 0x0?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000085f70 sp=0xc000085f50 pc=0x10003be56
runtime.goparkunlock(...)
    /opt/local/lib/go/src/runtime/proc.go:387
runtime.(*scavengerState).park(0x100e51a80)
    /opt/local/lib/go/src/runtime/mgcscavenge.go:400 +0x53 fp=0xc000085fa0 sp=0xc000085f70 pc=0x100024c13
runtime.bgscavenge(0x0?)
    /opt/local/lib/go/src/runtime/mgcscavenge.go:633 +0x65 fp=0xc000085fc8 sp=0xc000085fa0 pc=0x100025205
runtime.gcenable.func2()
    /opt/local/lib/go/src/runtime/mgc.go:179 +0x26 fp=0xc000085fe0 sp=0xc000085fc8 pc=0x10001bf46
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000085fe8 sp=0xc000085fe0 pc=0x10006f8c1
created by runtime.gcenable
    /opt/local/lib/go/src/runtime/mgc.go:179 +0xaa

goroutine 18 [finalizer wait]:
runtime.gopark(0x0?, 0x1008e0738?, 0x40?, 0xc0?, 0x2000000020?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000084628 sp=0xc000084608 pc=0x10003be56
runtime.runfinq()
    /opt/local/lib/go/src/runtime/mfinal.go:193 +0x107 fp=0xc0000847e0 sp=0xc000084628 pc=0x10001afe7
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0000847e8 sp=0xc0000847e0 pc=0x10006f8c1
created by runtime.createfing
    /opt/local/lib/go/src/runtime/mfinal.go:163 +0x45

goroutine 19 [select, locked to thread]:
runtime.gopark(0xc0007f5970?, 0x3?, 0x0?, 0xc?, 0xc0007f5912?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc0007f5768 sp=0xc0007f5748 pc=0x10003be56
runtime.selectgo(0xc0007f5970, 0xc0007f590c, 0x100e8d0a0?, 0x0, 0x1000442f1?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc0007f58a8 sp=0xc0007f5768 pc=0x10004c3de
github.com/charmbracelet/bubbletea.(*Program).eventLoop(0xc000404680, {0x1009866c0?, 0xc000318600?}, 0x10?)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:307 +0x105 fp=0xc0007f59b0 sp=0xc0007f58a8 pc=0x100498b05
github.com/charmbracelet/bubbletea.(*Program).Run(0xc000404680)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:528 +0x87d fp=0xc0007f5c38 sp=0xc0007f59b0 pc=0x100499cdd
github.com/go-musicfox/go-musicfox/pkg/commands.runPlayer(0xc0003700c0?, {0xc00031e530?, 0x0?, 0x0?})
    /Users/fuyu0425/tools/go-musicfox/pkg/commands/netease.go:47 +0x1a7 fp=0xc0007f5c98 sp=0xc0007f5c38 pc=0x1006126a7
github.com/gookit/gcli/v2.(*Command).execute(0xc000370000, {0xc00031e530, 0x0, 0x0})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/gookit/gcli/v2/cmd.go:243 +0x105 fp=0xc0007f5d08 sp=0xc0007f5c98 pc=0x1005d6c65
github.com/gookit/gcli/v2.(*App).doRun(0xc000322000, {0x10075a661, 0x7}, {0xc00031e530, 0x0, 0x0})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/gookit/gcli/v2/app_run.go:173 +0x43e fp=0xc0007f5db8 sp=0xc0007f5d08 pc=0x1005d491e
github.com/gookit/gcli/v2.(*App).Run(0xc000322000)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/gookit/gcli/v2/app_run.go:126 +0x2ee fp=0xc0007f5ea0 sp=0xc0007f5db8 pc=0x1005d438e
github.com/go-musicfox/go-musicfox/pkg/entry.runCLI()
    /Users/fuyu0425/tools/go-musicfox/pkg/entry/cli.go:50 +0x32a fp=0xc0007f5f18 sp=0xc0007f5ea0 pc=0x100612c8a
github.com/go-musicfox/go-musicfox/pkg/entry.AppEntry.func1.1.1()
    /Users/fuyu0425/tools/go-musicfox/pkg/entry/entry_darwin.go:24 +0x26 fp=0xc0007f5f68 sp=0xc0007f5f18 pc=0x100612fa6
github.com/go-musicfox/go-musicfox/pkg/macdriver/core.Autorelease(0xc000304fb8)
    /Users/fuyu0425/tools/go-musicfox/pkg/macdriver/core/core.go:77 +0x8f fp=0xc0007f5fa8 sp=0xc0007f5f68 pc=0x1004e718f
github.com/go-musicfox/go-musicfox/pkg/entry.AppEntry.func1.1()
    /Users/fuyu0425/tools/go-musicfox/pkg/entry/entry_darwin.go:23 +0x5b fp=0xc0007f5fe0 sp=0xc0007f5fa8 pc=0x100612f3b
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0007f5fe8 sp=0xc0007f5fe0 pc=0x10006f8c1
created by github.com/go-musicfox/go-musicfox/pkg/entry.AppEntry.func1
    /Users/fuyu0425/tools/go-musicfox/pkg/entry/entry_darwin.go:21 +0x45

goroutine 22 [IO wait]:
runtime.gopark(0x9?, 0xc0002dc000?, 0x0?, 0x10?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc0000958a0 sp=0xc000095880 pc=0x10003be56
runtime.netpollblock(0x1000c3449?, 0x6baf?, 0x1?)
    /opt/local/lib/go/src/runtime/netpoll.go:527 +0xf7 fp=0xc0000958d8 sp=0xc0000958a0 pc=0x100034fd7
internal/poll.runtime_pollWait(0x12946e6a8, 0x72)
    /opt/local/lib/go/src/runtime/netpoll.go:306 +0x89 fp=0xc0000958f8 sp=0xc0000958d8 pc=0x1000693e9
internal/poll.(*pollDesc).wait(0xc0001cfb00?, 0xc0002dc000?, 0x0)
    /opt/local/lib/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc000095920 sp=0xc0000958f8 pc=0x1000dedf2
internal/poll.(*pollDesc).waitRead(...)
    /opt/local/lib/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc0001cfb00, {0xc0002dc000, 0x1000, 0x1000})
    /opt/local/lib/go/src/internal/poll/fd_unix.go:167 +0x299 fp=0xc0000959b8 sp=0xc000095920 pc=0x1000e01d9
net.(*netFD).Read(0xc0001cfb00, {0xc0002dc000?, 0xc0001876c0?, 0xc000058a00?})
    /opt/local/lib/go/src/net/fd_posix.go:55 +0x29 fp=0xc000095a00 sp=0xc0000959b8 pc=0x100276529
net.(*conn).Read(0xc0001a6708, {0xc0002dc000?, 0x9?, 0xc0002dd000?})
    /opt/local/lib/go/src/net/net.go:183 +0x45 fp=0xc000095a48 sp=0xc000095a00 pc=0x100284605
net.(*UnixConn).Read(0x0?, {0xc0002dc000?, 0x1000c5260?, 0x9?})
    <autogenerated>:1 +0x29 fp=0xc000095a78 sp=0xc000095a48 pc=0x100297689
bufio.(*Reader).fill(0xc0001a9860)
    /opt/local/lib/go/src/bufio/bufio.go:106 +0xff fp=0xc000095ab0 sp=0xc000095a78 pc=0x1001a827f
bufio.(*Reader).ReadSlice(0xc0001a9860, 0xa3?)
    /opt/local/lib/go/src/bufio/bufio.go:372 +0x2f fp=0xc000095b00 sp=0xc000095ab0 pc=0x1001a8e6f
bufio.(*Reader).ReadLine(0xc0001a9860)
    /opt/local/lib/go/src/bufio/bufio.go:401 +0x27 fp=0xc000095b50 sp=0xc000095b00 pc=0x1001a90c7
net/textproto.(*Reader).readLineSlice(0xc000208360)
    /opt/local/lib/go/src/net/textproto/reader.go:56 +0x99 fp=0xc000095c38 sp=0xc000095b50 pc=0x100306539
net/textproto.(*Reader).ReadLine(...)
    /opt/local/lib/go/src/net/textproto/reader.go:39
github.com/fhs/gompd/v2/mpd.(*Client).readLine(0xc000095d88?)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/client.go:187 +0x30 fp=0xc000095d00 sp=0xc000095c38 pc=0x1004d0250
github.com/fhs/gompd/v2/mpd.(*Client).readList(0xc0002083c0?, {0x10075a072?, 0x11?})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/client.go:171 +0x85 fp=0xc000095d98 sp=0xc000095d00 pc=0x1004d0085
github.com/fhs/gompd/v2/mpd.(*Command).Strings(0xc0004a8330, {0x10075a072, 0x7})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/response.go:86 +0x15b fp=0xc000095e30 sp=0xc000095d98 pc=0x1004dd51b
github.com/fhs/gompd/v2/mpd.(*Client).idle(0xc000095f58?, {0xc0001c3e60?, 0x10000915d?, 0x0?})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/client.go:365 +0x8c fp=0xc000095e88 sp=0xc000095e30 pc=0x1004d12cc
github.com/fhs/gompd/v2/mpd.(*Watcher).watch(0xc0002a1740, {0xc0001c3e60?, 0x10019e7aa?, 0x0?})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/watcher.go:46 +0xbe fp=0xc000095fb0 sp=0xc000095e88 pc=0x1004ddc3e
github.com/fhs/gompd/v2/mpd.NewWatcher.func1()
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/watcher.go:36 +0x32 fp=0xc000095fe0 sp=0xc000095fb0 pc=0x1004ddb52
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000095fe8 sp=0xc000095fe0 pc=0x10006f8c1
created by github.com/fhs/gompd/v2/mpd.NewWatcher
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/fhs/gompd/v2/mpd/watcher.go:36 +0x1f0

goroutine 23 [select]:
runtime.gopark(0xc000304e18?, 0x2?, 0x9f?, 0xce?, 0xc000304dec?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000304c48 sp=0xc000304c28 pc=0x10003be56
runtime.selectgo(0xc000304e18, 0xc000304de8, 0x11?, 0x0, 0x3?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000304d88 sp=0xc000304c48 pc=0x10004c3de
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).listen(0xc00027d540)
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:172 +0x386 fp=0xc000304fb8 sp=0xc000304d88 pc=0x1004f1566
github.com/go-musicfox/go-musicfox/pkg/player.NewMpdPlayer.func1()
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:103 +0x3f fp=0xc000304fe0 sp=0xc000304fb8 pc=0x1004f0bdf
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000304fe8 sp=0xc000304fe0 pc=0x10006f8c1
created by github.com/go-musicfox/go-musicfox/pkg/player.NewMpdPlayer
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:101 +0x62a

goroutine 24 [select]:
runtime.gopark(0xc000306f10?, 0x2?, 0xc5?, 0x40?, 0xc000306e8c?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000306d00 sp=0xc000306ce0 pc=0x10003be56
runtime.selectgo(0xc000306f10, 0xc000306e88, 0xc00080a087?, 0x1, 0xffffffffffffffff?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000306e40 sp=0xc000306d00 pc=0x10004c3de
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).setState(...)
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:239
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).SyncMpdStatus(0xc00027d540, {0xc000400089, 0x6})
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:140 +0x219 fp=0xc000306f40 sp=0xc000306e40 pc=0x1004f0ef9
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).watch(0xc00027d540)
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:231 +0xd0 fp=0xc000306fb8 sp=0xc000306f40 pc=0x1004f1ad0
github.com/go-musicfox/go-musicfox/pkg/player.NewMpdPlayer.func2()
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:108 +0x3f fp=0xc000306fe0 sp=0xc000306fb8 pc=0x1004f0b5f
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000306fe8 sp=0xc000306fe0 pc=0x10006f8c1
created by github.com/go-musicfox/go-musicfox/pkg/player.NewMpdPlayer
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:106 +0x66a

goroutine 34 [select]:
runtime.gopark(0xc0004267a8?, 0x2?, 0x48?, 0xc?, 0xc00042677c?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc0004265f8 sp=0xc0004265d8 pc=0x10003be56
runtime.selectgo(0xc0004267a8, 0xc000426778, 0x0?, 0x0, 0x0?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000426738 sp=0xc0004265f8 pc=0x10004c3de
github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer.func1()
    /Users/fuyu0425/tools/go-musicfox/pkg/ui/player.go:104 +0xf4 fp=0xc0004267e0 sp=0xc000426738 pc=0x1005bdb14
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0004267e8 sp=0xc0004267e0 pc=0x10006f8c1
created by github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer
    /Users/fuyu0425/tools/go-musicfox/pkg/ui/player.go:101 +0x1d8

goroutine 36 [select]:
runtime.gopark(0xc000090ea0?, 0x2?, 0x18?, 0x0?, 0xc000090e74?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000090c80 sp=0xc000090c60 pc=0x10003be56
runtime.selectgo(0xc000090ea0, 0xc000090e70, 0x0?, 0x0, 0xc0002ad8d0?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000090dc0 sp=0xc000090c80 pc=0x10004c3de
github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer.func3()
    /Users/fuyu0425/tools/go-musicfox/pkg/ui/player.go:141 +0x125 fp=0xc000090fe0 sp=0xc000090dc0 pc=0x1005bd325
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000090fe8 sp=0xc000090fe0 pc=0x10006f8c1
created by github.com/go-musicfox/go-musicfox/pkg/ui.NewPlayer
    /Users/fuyu0425/tools/go-musicfox/pkg/ui/player.go:138 +0x298

goroutine 37 [select]:
runtime.gopark(0xc000427f88?, 0x2?, 0xea?, 0xa?, 0xc000427f44?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000427dc8 sp=0xc000427da8 pc=0x10003be56
runtime.selectgo(0xc000427f88, 0xc000427f40, 0x2?, 0x0, 0x0?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000427f08 sp=0xc000427dc8 pc=0x10004c3de
github.com/charmbracelet/bubbletea.(*Program).handleSignals.func1()
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:236 +0x15a fp=0xc000427fe0 sp=0xc000427f08 pc=0x1004982ba
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000427fe8 sp=0xc000427fe0 pc=0x10006f8c1
created by github.com/charmbracelet/bubbletea.(*Program).handleSignals
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:227 +0x85

goroutine 25 [select, locked to thread]:
runtime.gopark(0xc0004277a8?, 0x2?, 0xd2?, 0xc1?, 0xc0004277a4?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000427620 sp=0xc000427600 pc=0x10003be56
runtime.selectgo(0xc0004277a8, 0xc0004277a0, 0x0?, 0x0, 0x0?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000427760 sp=0xc000427620 pc=0x10004c3de
runtime.ensureSigM.func1()
    /opt/local/lib/go/src/runtime/signal_unix.go:1004 +0x187 fp=0xc0004277e0 sp=0xc000427760 pc=0x100066d67
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0004277e8 sp=0xc0004277e0 pc=0x10006f8c1
created by runtime.ensureSigM
    /opt/local/lib/go/src/runtime/signal_unix.go:987 +0xbd

goroutine 5 [syscall]:
runtime.sigNoteSleep(0xc000080fd0)
    /opt/local/lib/go/src/runtime/os_darwin.go:123 +0x1e fp=0xc000080fa0 sp=0xc000080f68 pc=0x10003617e
os/signal.signal_recv()
    /opt/local/lib/go/src/runtime/sigqueue.go:149 +0x28 fp=0xc000080fc0 sp=0xc000080fa0 pc=0x10006b5c8
os/signal.loop()
    /opt/local/lib/go/src/os/signal/signal_unix.go:23 +0x19 fp=0xc000080fe0 sp=0xc000080fc0 pc=0x1003e88f9
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000080fe8 sp=0xc000080fe0 pc=0x10006f8c1
created by os/signal.Notify.func1.1
    /opt/local/lib/go/src/os/signal/signal.go:151 +0x2a

goroutine 40 [syscall]:
syscall.syscall6(0x10003bf40?, 0xc000187520?, 0x3?, 0xc000093d30?, 0x100009391?, 0x10069b520?, 0xfffffffffffffff1?)
    /opt/local/lib/go/src/runtime/sys_darwin.go:45 +0x99 fp=0xc000093ce8 sp=0xc000093c28 pc=0x10006c119
golang.org/x/sys/unix.kevent(0xc000010500?, 0xc000093e38?, 0x2?, 0x0?, 0x100000000?, 0x0?)
    /Users/fuyu0425/tools/go-musicfox/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go:276 +0x52 fp=0xc000093d50 sp=0xc000093ce8 pc=0x1001413d2
golang.org/x/sys/unix.Kevent(0x0?, {0xc00041e1f8?, 0x0?, 0x1000e0340?}, {0xc000093df8?, 0xc000093dd0?, 0x10048ec46?}, 0x0?)
    /Users/fuyu0425/tools/go-musicfox/vendor/golang.org/x/sys/unix/syscall_bsd.go:398 +0x3c fp=0xc000093d90 sp=0xc000093d50 pc=0x1001412fc
github.com/muesli/cancelreader.(*kqueueCancelReader).wait(0xc00041e1b0)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/muesli/cancelreader/cancelreader_bsd.go:125 +0x6d fp=0xc000093e28 sp=0xc000093d90 pc=0x10048f5cd
github.com/muesli/cancelreader.(*kqueueCancelReader).Read(0xc00041e1b0, {0xc000010500, 0x100, 0x100})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/muesli/cancelreader/cancelreader_bsd.go:69 +0x52 fp=0xc000093e80 sp=0xc000093e28 pc=0x10048f092
github.com/charmbracelet/bubbletea.readInputs({0x1009873b0, 0xc000413130}, 0xc000440000, {0x1294a8068, 0xc00041e1b0})
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/key.go:548 +0x86 fp=0xc000093f18 sp=0xc000093e80 pc=0x100491f26
github.com/charmbracelet/bubbletea.(*Program).readLoop(0xc000404680)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tty.go:76 +0xb8 fp=0xc000093fc8 sp=0xc000093f18 pc=0x10049b018
github.com/charmbracelet/bubbletea.(*Program).initCancelReader.func1()
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tty.go:67 +0x26 fp=0xc000093fe0 sp=0xc000093fc8 pc=0x10049af26
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000093fe8 sp=0xc000093fe0 pc=0x10006f8c1
created by github.com/charmbracelet/bubbletea.(*Program).initCancelReader
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tty.go:67 +0xe5

goroutine 42 [select]:
runtime.gopark(0xc000422788?, 0x2?, 0x10?, 0x26?, 0xc000422754?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc0004225d8 sp=0xc0004225b8 pc=0x10003be56
runtime.selectgo(0xc000422788, 0xc000422750, 0x1?, 0x0, 0x0?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000422718 sp=0xc0004225d8 pc=0x10004c3de
github.com/charmbracelet/bubbletea.(*Program).listenForResize(0xc000404680, 0xc000440d20)
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/signals_unix.go:25 +0x13a fp=0xc0004227c0 sp=0xc000422718 pc=0x10049365a
github.com/charmbracelet/bubbletea.(*Program).handleResize.func2()
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:261 +0x2a fp=0xc0004227e0 sp=0xc0004227c0 pc=0x1004985aa
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0004227e8 sp=0xc0004227e0 pc=0x10006f8c1
created by github.com/charmbracelet/bubbletea.(*Program).handleResize
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:261 +0x18a

goroutine 43 [select]:
runtime.gopark(0xc000422fa8?, 0x2?, 0x5?, 0x0?, 0xc000422f74?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000422df8 sp=0xc000422dd8 pc=0x10003be56
runtime.selectgo(0xc000422fa8, 0xc000422f70, 0x0?, 0x0, 0x0?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000422f38 sp=0xc000422df8 pc=0x10004c3de
github.com/charmbracelet/bubbletea.(*Program).handleCommands.func1()
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:278 +0xe5 fp=0xc000422fe0 sp=0xc000422f38 pc=0x100498805
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000422fe8 sp=0xc000422fe0 pc=0x10006f8c1
created by github.com/charmbracelet/bubbletea.(*Program).handleCommands
    /Users/fuyu0425/tools/go-musicfox/vendor/github.com/charmbracelet/bubbletea/tea.go:274 +0xaa

goroutine 139 [IO wait]:
runtime.gopark(0x5?, 0xc0003a0000?, 0x80?, 0xc?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000307608 sp=0xc0003075e8 pc=0x10003be56
runtime.netpollblock(0x1000c3449?, 0x6baf?, 0x1?)
    /opt/local/lib/go/src/runtime/netpoll.go:527 +0xf7 fp=0xc000307640 sp=0xc000307608 pc=0x100034fd7
internal/poll.runtime_pollWait(0x12946e798, 0x72)
    /opt/local/lib/go/src/runtime/netpoll.go:306 +0x89 fp=0xc000307660 sp=0xc000307640 pc=0x1000693e9
internal/poll.(*pollDesc).wait(0xc0004ba100?, 0xc0003a0000?, 0x0)
    /opt/local/lib/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc000307688 sp=0xc000307660 pc=0x1000dedf2
internal/poll.(*pollDesc).waitRead(...)
    /opt/local/lib/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc0004ba100, {0xc0003a0000, 0xc80, 0xc80})
    /opt/local/lib/go/src/internal/poll/fd_unix.go:167 +0x299 fp=0xc000307720 sp=0xc000307688 pc=0x1000e01d9
net.(*netFD).Read(0xc0004ba100, {0xc0003a0000?, 0xc80?, 0xc0001d7540?})
    /opt/local/lib/go/src/net/fd_posix.go:55 +0x29 fp=0xc000307768 sp=0xc000307720 pc=0x100276529
net.(*conn).Read(0xc0001a6090, {0xc0003a0000?, 0x1002c9ee3?, 0xc0003a0005?})
    /opt/local/lib/go/src/net/net.go:183 +0x45 fp=0xc0003077b0 sp=0xc000307768 pc=0x100284605
net.(*TCPConn).Read(0xc000307848?, {0xc0003a0000?, 0xc0004a8450?, 0x18?})
    <autogenerated>:1 +0x29 fp=0xc0003077e0 sp=0xc0003077b0 pc=0x100296909
crypto/tls.(*atLeastReader).Read(0xc0004a8450, {0xc0003a0000?, 0xc0004a8450?, 0x0?})
    /opt/local/lib/go/src/crypto/tls/conn.go:788 +0x3d fp=0xc000307828 sp=0xc0003077e0 pc=0x1002cdcdd
bytes.(*Buffer).ReadFrom(0xc0000e6990, {0x100981b00, 0xc0004a8450})
    /opt/local/lib/go/src/bytes/buffer.go:202 +0x98 fp=0xc000307880 sp=0xc000307828 pc=0x10010c838
crypto/tls.(*Conn).readFromUntil(0xc0000e6700, {0x1294d5958?, 0xc0001a6090}, 0xc0003a0005?)
    /opt/local/lib/go/src/crypto/tls/conn.go:810 +0xe5 fp=0xc0003078c0 sp=0xc000307880 pc=0x1002cdec5
crypto/tls.(*Conn).readRecordOrCCS(0xc0000e6700, 0x0)
    /opt/local/lib/go/src/crypto/tls/conn.go:617 +0x116 fp=0xc000307c20 sp=0xc0003078c0 pc=0x1002cb3b6
crypto/tls.(*Conn).readRecord(...)
    /opt/local/lib/go/src/crypto/tls/conn.go:583
crypto/tls.(*Conn).Read(0xc0000e6700, {0xc000374000, 0x1000, 0x10033c860?})
    /opt/local/lib/go/src/crypto/tls/conn.go:1316 +0x16f fp=0xc000307c90 sp=0xc000307c20 pc=0x1002d12af
bufio.(*Reader).Read(0xc00041b1a0, {0xc00042e740, 0x9, 0x10035a4e5?})
    /opt/local/lib/go/src/bufio/bufio.go:237 +0x1bb fp=0xc000307cc8 sp=0xc000307c90 pc=0x1001a885b
io.ReadAtLeast({0x100981940, 0xc00041b1a0}, {0xc00042e740, 0x9, 0x9}, 0x9)
    /opt/local/lib/go/src/io/io.go:332 +0x9a fp=0xc000307d10 sp=0xc000307cc8 pc=0x1000b8fda
io.ReadFull(...)
    /opt/local/lib/go/src/io/io.go:351
net/http.http2readFrameHeader({0xc00042e740?, 0x9?, 0xc0005ab2f0?}, {0x100981940?, 0xc00041b1a0?})
    /opt/local/lib/go/src/net/http/h2_bundle.go:1567 +0x6e fp=0xc000307d60 sp=0xc000307d10 pc=0x10033370e
net/http.(*http2Framer).ReadFrame(0xc00042e700)
    /opt/local/lib/go/src/net/http/h2_bundle.go:1831 +0x95 fp=0xc000307e10 sp=0xc000307d60 pc=0x100333f55
net/http.(*http2clientConnReadLoop).run(0xc000307f98)
    /opt/local/lib/go/src/net/http/h2_bundle.go:9187 +0x12e fp=0xc000307f60 sp=0xc000307e10 pc=0x10035752e
net/http.(*http2ClientConn).readLoop(0xc00020a480)
    /opt/local/lib/go/src/net/http/h2_bundle.go:9082 +0x6f fp=0xc000307fc8 sp=0xc000307f60 pc=0x100356a4f
net/http.(*http2Transport).newClientConn.func1()
    /opt/local/lib/go/src/net/http/h2_bundle.go:7779 +0x26 fp=0xc000307fe0 sp=0xc000307fc8 pc=0x10034f646
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000307fe8 sp=0xc000307fe0 pc=0x10006f8c1
created by net/http.(*http2Transport).newClientConn
    /opt/local/lib/go/src/net/http/h2_bundle.go:7779 +0xc3c

goroutine 32 [GC worker (idle)]:
runtime.gopark(0xa4aa0d9d90b5?, 0xc000087f80?, 0x0?, 0x0?, 0x1?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000087f50 sp=0xc000087f30 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc000087fe0 sp=0xc000087f50 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000087fe8 sp=0xc000087fe0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 31 [GC worker (idle)]:
runtime.gopark(0xc000509fb0?, 0xc000509f80?, 0x0?, 0x0?, 0x1?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000509f50 sp=0xc000509f30 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc000509fe0 sp=0xc000509f50 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000509fe8 sp=0xc000509fe0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 71 [GC worker (idle)]:
runtime.gopark(0xc00050a7b0?, 0xc00050a780?, 0x0?, 0x0?, 0x1?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc00050a750 sp=0xc00050a730 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc00050a7e0 sp=0xc00050a750 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc00050a7e8 sp=0xc00050a7e0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 10 [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000504750 sp=0xc000504730 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc0005047e0 sp=0xc000504750 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0005047e8 sp=0xc0005047e0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 72 [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc00050af50 sp=0xc00050af30 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc00050afe0 sp=0xc00050af50 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc00050afe8 sp=0xc00050afe0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 11 [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000504f50 sp=0xc000504f30 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc000504fe0 sp=0xc000504f50 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000504fe8 sp=0xc000504fe0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 73 [GC worker (idle)]:
runtime.gopark(0x100e8e160?, 0x1?, 0xff?, 0x4b?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc00050b750 sp=0xc00050b730 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc00050b7e0 sp=0xc00050b750 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc00050b7e8 sp=0xc00050b7e0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 74 [GC worker (idle)]:
runtime.gopark(0xa4aa1ed16e25?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc00050bf50 sp=0xc00050bf30 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc00050bfe0 sp=0xc00050bf50 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc00050bfe8 sp=0xc00050bfe0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 75 [GC worker (idle)]:
runtime.gopark(0xa4aa1ed29985?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000546750 sp=0xc000546730 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc0005467e0 sp=0xc000546750 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0005467e8 sp=0xc0005467e0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 76 [GC worker (idle)]:
runtime.gopark(0xa4aa1ed29aea?, 0x3?, 0xb8?, 0x9?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000546f50 sp=0xc000546f30 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc000546fe0 sp=0xc000546f50 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000546fe8 sp=0xc000546fe0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 77 [GC worker (idle)]:
runtime.gopark(0x100e8e160?, 0x1?, 0x9f?, 0x63?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000547750 sp=0xc000547730 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc0005477e0 sp=0xc000547750 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0005477e8 sp=0xc0005477e0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 12 [GC worker (idle)]:
runtime.gopark(0xa4aa1ed2d55e?, 0x3?, 0x36?, 0xb7?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000505750 sp=0xc000505730 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc0005057e0 sp=0xc000505750 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0005057e8 sp=0xc0005057e0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 78 [GC worker (idle)]:
runtime.gopark(0xa4aa1ed1701e?, 0x3?, 0x1f?, 0x5b?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000547f50 sp=0xc000547f30 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc000547fe0 sp=0xc000547f50 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000547fe8 sp=0xc000547fe0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 13 [GC worker (idle)]:
runtime.gopark(0xa4aa1ed16e42?, 0x3?, 0x10?, 0x9d?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000505f50 sp=0xc000505f30 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc000505fe0 sp=0xc000505f50 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000505fe8 sp=0xc000505fe0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 51 [GC worker (idle)]:
runtime.gopark(0xa4aa1ed2ed3a?, 0x1?, 0x10?, 0xd?, 0x100000000000000?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000080750 sp=0xc000080730 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc0000807e0 sp=0xc000080750 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0000807e8 sp=0xc0000807e0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 52 [GC worker (idle)]:
runtime.gopark(0xa4aa1ed16f35?, 0x3?, 0x16?, 0x34?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000542750 sp=0xc000542730 pc=0x10003be56
runtime.gcBgMarkWorker()
    /opt/local/lib/go/src/runtime/mgc.go:1275 +0xf1 fp=0xc0005427e0 sp=0xc000542750 pc=0x10001dd11
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0005427e8 sp=0xc0005427e0 pc=0x10006f8c1
created by runtime.gcBgMarkStartWorkers
    /opt/local/lib/go/src/runtime/mgc.go:1199 +0x25

goroutine 110 [IO wait]:
runtime.gopark(0x14?, 0xc0004e7000?, 0x0?, 0x10?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000301608 sp=0xc0003015e8 pc=0x10003be56
runtime.netpollblock(0x1000c3449?, 0x6baf?, 0x1?)
    /opt/local/lib/go/src/runtime/netpoll.go:527 +0xf7 fp=0xc000301640 sp=0xc000301608 pc=0x100034fd7
internal/poll.runtime_pollWait(0x12946e2e8, 0x72)
    /opt/local/lib/go/src/runtime/netpoll.go:306 +0x89 fp=0xc000301660 sp=0xc000301640 pc=0x1000693e9
internal/poll.(*pollDesc).wait(0xc0004baa00?, 0xc0004e7000?, 0x0)
    /opt/local/lib/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc000301688 sp=0xc000301660 pc=0x1000dedf2
internal/poll.(*pollDesc).waitRead(...)
    /opt/local/lib/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc0004baa00, {0xc0004e7000, 0x1000, 0x1000})
    /opt/local/lib/go/src/internal/poll/fd_unix.go:167 +0x299 fp=0xc000301720 sp=0xc000301688 pc=0x1000e01d9
net.(*netFD).Read(0xc0004baa00, {0xc0004e7000?, 0xc0004e7a36?, 0x19?})
    /opt/local/lib/go/src/net/fd_posix.go:55 +0x29 fp=0xc000301768 sp=0xc000301720 pc=0x100276529
net.(*conn).Read(0xc00030c0b8, {0xc0004e7000?, 0x5ca?, 0xc0004e7a2e?})
    /opt/local/lib/go/src/net/net.go:183 +0x45 fp=0xc0003017b0 sp=0xc000301768 pc=0x100284605
net.(*TCPConn).Read(0xc000301848?, {0xc0004e7000?, 0xc0004a8078?, 0x18?})
    <autogenerated>:1 +0x29 fp=0xc0003017e0 sp=0xc0003017b0 pc=0x100296909
crypto/tls.(*atLeastReader).Read(0xc0004a8078, {0xc0004e7000?, 0xc0004a8078?, 0x0?})
    /opt/local/lib/go/src/crypto/tls/conn.go:788 +0x3d fp=0xc000301828 sp=0xc0003017e0 pc=0x1002cdcdd
bytes.(*Buffer).ReadFrom(0xc0000e7410, {0x100981b00, 0xc0004a8078})
    /opt/local/lib/go/src/bytes/buffer.go:202 +0x98 fp=0xc000301880 sp=0xc000301828 pc=0x10010c838
crypto/tls.(*Conn).readFromUntil(0xc0000e7180, {0x1294d5958?, 0xc00030c0b8}, 0x5d7?)
    /opt/local/lib/go/src/crypto/tls/conn.go:810 +0xe5 fp=0xc0003018c0 sp=0xc000301880 pc=0x1002cdec5
crypto/tls.(*Conn).readRecordOrCCS(0xc0000e7180, 0x0)
    /opt/local/lib/go/src/crypto/tls/conn.go:617 +0x116 fp=0xc000301c20 sp=0xc0003018c0 pc=0x1002cb3b6
crypto/tls.(*Conn).readRecord(...)
    /opt/local/lib/go/src/crypto/tls/conn.go:583
crypto/tls.(*Conn).Read(0xc0000e7180, {0xc0002af000, 0x1000, 0x10033c860?})
    /opt/local/lib/go/src/crypto/tls/conn.go:1316 +0x16f fp=0xc000301c90 sp=0xc000301c20 pc=0x1002d12af
bufio.(*Reader).Read(0xc000116de0, {0xc00042e120, 0x9, 0x10035a4e5?})
    /opt/local/lib/go/src/bufio/bufio.go:237 +0x1bb fp=0xc000301cc8 sp=0xc000301c90 pc=0x1001a885b
io.ReadAtLeast({0x100981940, 0xc000116de0}, {0xc00042e120, 0x9, 0x9}, 0x9)
    /opt/local/lib/go/src/io/io.go:332 +0x9a fp=0xc000301d10 sp=0xc000301cc8 pc=0x1000b8fda
io.ReadFull(...)
    /opt/local/lib/go/src/io/io.go:351
net/http.http2readFrameHeader({0xc00042e120?, 0x9?, 0xc00013c120?}, {0x100981940?, 0xc000116de0?})
    /opt/local/lib/go/src/net/http/h2_bundle.go:1567 +0x6e fp=0xc000301d60 sp=0xc000301d10 pc=0x10033370e
net/http.(*http2Framer).ReadFrame(0xc00042e0e0)
    /opt/local/lib/go/src/net/http/h2_bundle.go:1831 +0x95 fp=0xc000301e10 sp=0xc000301d60 pc=0x100333f55
net/http.(*http2clientConnReadLoop).run(0xc000301f98)
    /opt/local/lib/go/src/net/http/h2_bundle.go:9187 +0x12e fp=0xc000301f60 sp=0xc000301e10 pc=0x10035752e
net/http.(*http2ClientConn).readLoop(0xc000370480)
    /opt/local/lib/go/src/net/http/h2_bundle.go:9082 +0x6f fp=0xc000301fc8 sp=0xc000301f60 pc=0x100356a4f
net/http.(*http2Transport).newClientConn.func1()
    /opt/local/lib/go/src/net/http/h2_bundle.go:7779 +0x26 fp=0xc000301fe0 sp=0xc000301fc8 pc=0x10034f646
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000301fe8 sp=0xc000301fe0 pc=0x10006f8c1
created by net/http.(*http2Transport).newClientConn
    /opt/local/lib/go/src/net/http/h2_bundle.go:7779 +0xc3c

goroutine 228 [IO wait]:
runtime.gopark(0x15?, 0xc0007ac000?, 0x0?, 0x10?, 0x0?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000097608 sp=0xc0000975e8 pc=0x10003be56
runtime.netpollblock(0x1000c3449?, 0x6baf?, 0x1?)
    /opt/local/lib/go/src/runtime/netpoll.go:527 +0xf7 fp=0xc000097640 sp=0xc000097608 pc=0x100034fd7
internal/poll.runtime_pollWait(0x12946e1f8, 0x72)
    /opt/local/lib/go/src/runtime/netpoll.go:306 +0x89 fp=0xc000097660 sp=0xc000097640 pc=0x1000693e9
internal/poll.(*pollDesc).wait(0xc0004ba380?, 0xc0007ac000?, 0x0)
    /opt/local/lib/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc000097688 sp=0xc000097660 pc=0x1000dedf2
internal/poll.(*pollDesc).waitRead(...)
    /opt/local/lib/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc0004ba380, {0xc0007ac000, 0x1000, 0x1000})
    /opt/local/lib/go/src/internal/poll/fd_unix.go:167 +0x299 fp=0xc000097720 sp=0xc000097688 pc=0x1000e01d9
net.(*netFD).Read(0xc0004ba380, {0xc0007ac000?, 0xc0007ac341?, 0x24?})
    /opt/local/lib/go/src/net/fd_posix.go:55 +0x29 fp=0xc000097768 sp=0xc000097720 pc=0x100276529
net.(*conn).Read(0xc0001a6078, {0xc0007ac000?, 0xc000097808?, 0xc00027e1b0?})
    /opt/local/lib/go/src/net/net.go:183 +0x45 fp=0xc0000977b0 sp=0xc000097768 pc=0x100284605
net.(*TCPConn).Read(0xc000097848?, {0xc0007ac000?, 0xc0000121e0?, 0x18?})
    <autogenerated>:1 +0x29 fp=0xc0000977e0 sp=0xc0000977b0 pc=0x100296909
crypto/tls.(*atLeastReader).Read(0xc0000121e0, {0xc0007ac000?, 0xc0000121e0?, 0x0?})
    /opt/local/lib/go/src/crypto/tls/conn.go:788 +0x3d fp=0xc000097828 sp=0xc0000977e0 pc=0x1002cdcdd
bytes.(*Buffer).ReadFrom(0xc00027e290, {0x100981b00, 0xc0000121e0})
    /opt/local/lib/go/src/bytes/buffer.go:202 +0x98 fp=0xc000097880 sp=0xc000097828 pc=0x10010c838
crypto/tls.(*Conn).readFromUntil(0xc00027e000, {0x1294d5958?, 0xc0001a6078}, 0xcc4?)
    /opt/local/lib/go/src/crypto/tls/conn.go:810 +0xe5 fp=0xc0000978c0 sp=0xc000097880 pc=0x1002cdec5
crypto/tls.(*Conn).readRecordOrCCS(0xc00027e000, 0x0)
    /opt/local/lib/go/src/crypto/tls/conn.go:617 +0x116 fp=0xc000097c20 sp=0xc0000978c0 pc=0x1002cb3b6
crypto/tls.(*Conn).readRecord(...)
    /opt/local/lib/go/src/crypto/tls/conn.go:583
crypto/tls.(*Conn).Read(0xc00027e000, {0xc0007b8000, 0x1000, 0x10033c860?})
    /opt/local/lib/go/src/crypto/tls/conn.go:1316 +0x16f fp=0xc000097c90 sp=0xc000097c20 pc=0x1002d12af
bufio.(*Reader).Read(0xc000117740, {0xc0007b0580, 0x9, 0x10035a4e5?})
    /opt/local/lib/go/src/bufio/bufio.go:237 +0x1bb fp=0xc000097cc8 sp=0xc000097c90 pc=0x1001a885b
io.ReadAtLeast({0x100981940, 0xc000117740}, {0xc0007b0580, 0x9, 0x9}, 0x9)
    /opt/local/lib/go/src/io/io.go:332 +0x9a fp=0xc000097d10 sp=0xc000097cc8 pc=0x1000b8fda
io.ReadFull(...)
    /opt/local/lib/go/src/io/io.go:351
net/http.http2readFrameHeader({0xc0007b0580?, 0x9?, 0xc0005743c0?}, {0x100981940?, 0xc000117740?})
    /opt/local/lib/go/src/net/http/h2_bundle.go:1567 +0x6e fp=0xc000097d60 sp=0xc000097d10 pc=0x10033370e
net/http.(*http2Framer).ReadFrame(0xc0007b0540)
    /opt/local/lib/go/src/net/http/h2_bundle.go:1831 +0x95 fp=0xc000097e10 sp=0xc000097d60 pc=0x100333f55
net/http.(*http2clientConnReadLoop).run(0xc000097f98)
    /opt/local/lib/go/src/net/http/h2_bundle.go:9187 +0x12e fp=0xc000097f60 sp=0xc000097e10 pc=0x10035752e
net/http.(*http2ClientConn).readLoop(0xc00020a900)
    /opt/local/lib/go/src/net/http/h2_bundle.go:9082 +0x6f fp=0xc000097fc8 sp=0xc000097f60 pc=0x100356a4f
net/http.(*http2Transport).newClientConn.func1()
    /opt/local/lib/go/src/net/http/h2_bundle.go:7779 +0x26 fp=0xc000097fe0 sp=0xc000097fc8 pc=0x10034f646
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000097fe8 sp=0xc000097fe0 pc=0x10006f8c1
created by net/http.(*http2Transport).newClientConn
    /opt/local/lib/go/src/net/http/h2_bundle.go:7779 +0xc3c

goroutine 232 [select]:
runtime.gopark(0xc000081f98?, 0x2?, 0x40?, 0x3?, 0xc000081f6c?)
    /opt/local/lib/go/src/runtime/proc.go:381 +0xd6 fp=0xc000081df8 sp=0xc000081dd8 pc=0x10003be56
runtime.selectgo(0xc000081f98, 0xc000081f68, 0x100e51980?, 0x0, 0x188291015?, 0x1)
    /opt/local/lib/go/src/runtime/select.go:327 +0x7be fp=0xc000081f38 sp=0xc000081df8 pc=0x10004c3de
github.com/go-musicfox/go-musicfox/utils.(*Timer).Run(0xc0004ba400)
    /Users/fuyu0425/tools/go-musicfox/utils/timer.go:78 +0x247 fp=0xc000081fc8 sp=0xc000081f38 pc=0x100457307
github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).SyncMpdStatus.func1()
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:138 +0x26 fp=0xc000081fe0 sp=0xc000081fc8 pc=0x1004f11a6
runtime.goexit()
    /opt/local/lib/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc000081fe8 sp=0xc000081fe0 pc=0x10006f8c1
created by github.com/go-musicfox/go-musicfox/pkg/player.(*mpdPlayer).SyncMpdStatus
    /Users/fuyu0425/tools/go-musicfox/pkg/player/mpd_player.go:138 +0x190

rax    0x0
rbx    0x700009f00000
rcx    0x700009efe5e8
rdx    0x0
rdi    0x7903
rsi    0x6
rbp    0x700009efe610
rsp    0x700009efe5e8
r8     0x700009efe4b0
r9     0x700009efe680
r10    0x700009f00000
r11    0x246
r12    0x7903
r13    0x3000000008
r14    0x6
r15    0x16
rip    0x7fff6e97932a
rflags 0x246
cs     0x7
fs     0x0
gs     0x0
❯ pkill mpd
❯ ./bin/musicfox -V
Musicfox - 命令行版网易云音乐

Version: v4.1.2-44-g6d5f3c1

master 的我自己 build的 看起來一樣?

anhoder commented 1 year ago

我的mac(ventura)没出现,是某首歌导致的还是所有歌都这样

fuyu0425 commented 1 year ago

所有歌都會 可能我 macOS 版本太舊了?

anhoder commented 1 year ago

应该不至于,可能网络/代理问题?

fuyu0425 commented 1 year ago

就出錯在這上面,把這兩行註解掉就沒 crash了

                // s.curArtwork = mediaplayer.MPMediaItemArtwork_alloc()
                // s.curArtwork = mediaplayer.MPMediaItemArtwork_alloc().InitWithImage(image)

還有下面的 dic.SetValueForKey(core.String(mediaplayer.MPMediaItemPropertyArtwork), s.curArtwork.NSObject)

這兩行是做啥的阿? 註解掉一樣一有圖片 🤔

圖片

EDIT: 這是通知的

fuyu0425 commented 1 year ago

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaPlayer.framework/Versions/A/Headers/MPMediaItem.h

#if TARGET_OS_IPHONE
- (instancetype)initWithImage:(UIImage *)image MP_DEPRECATED("Use -initWithBoundsSize:requestHandler:", ios(5.0, 10.0));
#endif

- (id)init NS_UNAVAILABLE;
@end

initWithImage 這個 method 是 iPhone才有,是不是 arm64 的這個 method 才有 define?

似乎要用 initWithBoundsSize 才對 (不熟apple開發)

anhoder commented 1 year ago

是Mac NowPlaying用的,不是通知,注释掉就没有图片

image

这个方法mac可以调的,我的Intel Mac也正常,可能确实和系统版本有关系

anhoder commented 1 year ago

state_handler_darwin.go:125-126换成下面这样,然后看下日志文件

image = i
artwork := mediaplayer.MPMediaItemArtwork_alloc()
utils.Logger().Printf("image: %+v, artwork: %+v\n", image, s.curArtwork)
s.curArtwork = artwork.InitWithImage(image)
fuyu0425 commented 1 year ago

artwork 吧?

image: {NSObject:{ID:4312881600}}, artwork: {NSObject:{ID:4349533056}}
anhoder commented 1 year ago

看起来是alloc的问题,但是alloc失败有点不可思议,可能需要一个macOS 10.15.6环境才能复现

fuyu0425 commented 1 year ago

artwork allocate 有成功。 不修也沒關係了,圖片不是太重要。 等之後我 upgrade OS 就好了。

anhoder commented 1 year ago

做了个兼容