这段代码很酷!试试吧。它会在您的用户中创建一个名为.007的文件夹,并保存一个名为yahoo.mp3的mp3。
如果权限设置正确,它也会在Android设备上执行。
创建文件夹并保存mp3后,它将循环通过文件夹并获取文件路径和文件名。
我的问题是:如何访问它并在Android上播放声音?如果您测试它,它可以在桌面上工作但不在机器人上。有什么想法吗?
import flash.filesystem.*;
var urlString:String = "http://YourWebsite.com/YourSound.mp3";
var urlReq:URLRequest = new URLRequest(urlString);
var urlStream:URLStream = new URLStream();
var fileData:ByteArray = new ByteArray();
urlStream.addEventListener(Event.COMPLETE, loaded);
urlStream.load(urlReq);
function loaded(event:Event):void
{
urlStream.readBytes(fileData, 0, urlStream.bytesAvailable);
writeAirFile();
}
function writeAirFile():void
{
var file:File = File.userDirectory.resolvePath(".007/Yahoo.mp3");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeBytes(fileData, 0, fileData.length);
fileStream.close();
trace("The file is written.");
var desktop:File = File.userDirectory.resolvePath(".0");
var files:Array = desktop.getDirectoryListing();
for (var i:uint = 0; i < files.length; i++)
{
trace(files[i].nativePath);// gets the path of the files
trace(files[i].name);// gets the name
var mySound:Sound = new Sound();
var myChannel:SoundChannel = new SoundChannel();
var lastPosition:Number = 0;
mySound.load(new URLRequest(files[0].nativePath));
myChannel = mySound.play();
}
}
答案 0 :(得分:3)
file:// &lt; ------- 答案!
知道了!访问Android手机上“sdcard”所需的文件路径必须以: file://
开头如果您想从手机加载声音,它将如下所示。这是所需的一条重要线。我将在下面发布完整的代码。
mySound.load(new URLRequest("file://mnt/sdcard/AnyFolder/YourSound.mp3"));
由于我在上面使用了一个循环来获取特定文件夹中的所有文件,因此这是上面示例中适用于我的代码。
mySound.load(new URLRequest("file://"+files[0].nativePath));
完整代码加载并播放DROID上的声音
var mySound:Sound = new Sound();
var myChannel:SoundChannel = new SoundChannel();
var lastPosition:Number = 0;
mySound.load(new URLRequest("file://mnt/sdcard/AnyFolder/YourSound.mp3"));
myChannel = mySound.play();
我努力寻找这个答案。我希望这有助于许多人。 如果此代码对您有所帮助,请记得+1。 :)
我喜欢StackOverflow! :)强>