Audio play code does not support on firmware version 3.1

Hi
My audio play code does not play on video on roku firmware version 3.1 . It is playing correctly on version greater than 3.1
Here is my code:-

Function showAudioItemDetail(videoIndex as Integer,json As Object) As Void
    print "play audio funtion started"
    port = CreateObject("roMessagePort")
    screen = CreateObject("roSpringboardScreen")
    audio = CreateObject("roAudioPlayer")
    screen.SetMessagePort(port)
    audio.SetMessagePort(port)
    item=getAudioItemDetail(videoIndex, json)
    song = CreateObject("roAssociativeArray")
    adjective=item.StreamUrls
    print "video url ";item.StreamUrls[0]
    pauseStatus = 0
    song.url =  item.StreamUrls[0]
    'song.url = "http://ia700601.us.archive.org/10/items/HindiPravachanMp3-ByShriShankaracharyaJi/12-SIDE-A.mp3"
    print "my url ";song.url
    song.streamformat="hls"
    bitrates  = [10240]
    song.StreamBitrates=bitrates
    print "==>";item.StreamUrls
    screen.SetContent(item)
    screen.AddButton(1,"Play")
    screen.AddButton(2,"Go Back")
    screen.SetStaticRatingEnabled(false)
    screen.AllowUpdates(true)
    screen.UseStableFocus(true)
    audio.addContent(song)
    audio.setloop(false)
    screen.Show()
    while true
        msg = wait(20000, screen.GetMessagePort())
        if type(msg) = "roSpringboardScreenEvent"
		  if msg.isScreenClosed() then 			
                exit while               
            else if msg.isButtonPressed()
				if msg.GetIndex() = 1
				if pauseStatus = 0
				    'audio.Seek(10000)
					audio.Play()
					screen.ClearButtons()
					screen.AddButton(1,"Pause")
                    screen.AddButton(2,"Go Back")
                    screen.Show()
                    pauseStatus = 1
                    
                    else if pauseStatus = 1
                    audio.Pause()
					screen.ClearButtons()
					screen.AddButton(1,"Play")
                    screen.AddButton(2,"Go Back")
                    screen.Show()
                    pauseStatus = 2
                    
                    else
                    audio.Resume()
					screen.ClearButtons()
					screen.AddButton(1,"Pause")
                    screen.AddButton(2,"Go Back")
                    screen.Show()
                    pauseStatus = 1
                    end if
				else if msg.GetIndex() = 2
					exit while
				end if
            endif
		endif
		if type(msg) = "roAudioPlayerEvent"
			if msg.isStatusMessage()
				print "Message = ";msg.GetMessage();" get index ";msg.GetIndex()
				if msg.GetMessage() = "end of playlist"
				    screen.ClearButtons()
					screen.AddButton(1,"Play")
                    screen.AddButton(2,"Go Back")
                    screen.Show()
                    pauseStatus = 0
					end if 					
				else if msg.isStreamStarted() then
				print "Straem Started";msg.GetIndex()
				
				else if msg.isRequestFailed() = true
				print "Audio playback failed due to an error.";msg.GetMessage()
				
								
            endif
		endif
    end while   
	print "show audio function end"
End Function

'***********************************************************
'**
'**			getAudioItemDetail()
'**
'** This function returns an object of roAssociativeArray
'** of Content MetaData for roSpringboardScreen 
'***********************************************************

Function getAudioItemDetail(videoIndex as Integer, json as Object) as Object

print "getItemDetail started"
print "url =>";[json.video[videoIndex].url]
print " => ";json.video[videoIndex].thumbnailUrl
	item = {
	    ContentType:"episode"
	    Title:json.video[videoIndex].title
	    SDPosterUrl:json.video[videoIndex].thumbnailUrl
	    HDPosterUrl:json.video[videoIndex].thumbnailUrl
	    Description:json.video[videoIndex].Description
	    StreamUrls: [json.video[videoIndex].url]
	    }
print "getItemDetail ended"
    return item
End Function

Plz help me to find which code is not working correctly for this version(3.1)
And plz help me to get out of this problem

Thanks
Deepak Gupta