Audio.TimePosition not working even though it should be

Ok so, I tried to do every time the TimePosition changes to change the label text, but the GetPropertyChangedSignal never fires and I got no idea why? (By the way, the entire script is in a local script)

local frame = script.Parent
local radioMusic = frame:WaitForChild("radioMusic")
local musicEnter = frame:WaitForChild("musicEnter")
local musicLength = frame:WaitForChild("musicLength")
local MPS = game:GetService("MarketplaceService")
local musicName = frame:WaitForChild("musicName") 




musicEnter.FocusLost:Connect(function(enterPressed)
	if enterPressed and typeof(enterPressed) ~= "string" then
		local musicInfo = MPS:GetProductInfo(tonumber(musicEnter.Text), Enum.InfoType.Asset)
		print(musicInfo)
		if musicInfo and musicInfo.AssetTypeId == Enum.AssetType.Audio.Value then
			musicName.Text = musicInfo.Name
			radioMusic.SoundId = "rbxassetid://"..tonumber(musicEnter.Text)
			radioMusic:Play()
		end
	end
end)


radioMusic:GetPropertyChangedSignal("TimePosition"):Connect(function()
	musicLength.Text = radioMusic.TimePosition.."/"..radioMusic.TimeLength
end)```

Seems like you cannot hook up an event to the TimePosition property even after testing it by myself. You can update the text in a heartbeat event or a loop.

game:GetService("RunService").Heartbeat:Connect(function()
	musicLength.Text = radioMusic.TimePosition.."/"..radioMusic.TimeLength
end)

or

while true do
	musicLength.Text = radioMusic.TimePosition.."/"..radioMusic.TimeLength
    wait()
end

I would prefer to use the heartbeat event but up to you.