如何使用media.newRecording录制和播放音频

时间:2014-04-19 04:52:02

标签: lua corona

我创造了3个方格。我想要第一个方块来录制和保存录音。第二个方块停止录音。获得录音并播放的第三个方块。

当我在计算机上使用该应用程序时,我能够得到回复,但结果不是很清楚(我没有麦克风)。当我在手机上测试时,我没有得到任何回复。

如何让这个应用程序运作?

function startRecording ()
print( "startRec tap" )
recordPath = system.pathForFile( "recordings.wav", system.DocumentsDirectory )
recording = media.newRecording( recordPath )
recording:startTuner( )
recording:startRecording( )

proof1 = display.newText( "proof1", 80, 300,nil , 20 )  
end


function stopRecording(  )
print( "stopRec tap" )
proof2 = display.newText( "proof2", 280, 300,nil , 20 )
recording:stopRecording( )
recording:stopTuner( )  
end


function playRecording ()
print( "Play back recording" )
findRecording = audio.loadSound( "recordings.wav" , system.DocumentsDirectory )
audio.play( findRecording)
proof3 = display.newText( "proof3", 400, 300,nil , 20 )
end

*更新:我已将带有实际声音的.wav文件加载到system.DocumentsDirectory中。结果:它适用于电晕模拟器(听到声音),但它在我的手机上无效(没有声音)。 ***我认为问题是我的手机无法访问system.DocumentsDirectory中的文件。

以下是我编辑过的代码,而sample.wav是具有实际声音的音频。有人有任何见解吗?

function playRecording ()
print( "Play back recording" )
findRecording = audio.loadSound( "sample.wav" , system.DocumentsDirectory )
audio.play( findRecording)
proof3 = display.newText( "proof3", 400, 300,nil , 20 )

end

感谢您的时间

1 个答案:

答案 0 :(得分:0)

您应该检查几件事:

  • 配置文件中的RECORD_AUDIO权限
  • 开始后和停止前IsRecording为真
  • 创建的声音文件的大小
  • 如果创建了文件,请将其复制到您的PC并查看它是否播放任何内容

更新:

如果你知道一切都是真的,即你有一个声音文件,那么这里有更多的问题需要检查:

  • 也许回放没有找到文件。
  • 它在模拟器中工作吗?
  • 您可以在设备上听到来自其他(非电晕)游戏或应用的声音吗?
  • 当您在设备上播放其中一个有声音的电晕演示应用时,您能够听到声音吗?

更新2:

如果以上所有内容都通过,那么“我认为问题是我的手机无法访问system.DocumentsDirectory中的文件”可能不正确,除非在您的应用中演示应用中有不同的配置设置像一些配置权限。

复制适用于新项目的Corona示例并开始从您的应用添加代码。经常进行测试,因为您最终可能会添加一些导致它不再有效的应用程序代码,然后您会看到原始应用程序中出现了什么问题,或者您最终会在修改后的应用程序中获得所需的一切,并且您将会永远不知道什么是问题,但你可以放弃你一直在做的原始来源。