0

这段代码太酷了!试试看。它会在您的用户中创建一个名为 .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();

    }


}
4

1 回答 1

3

file:// <-------答案!

知道了!在 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!:)

于 2012-08-20T16:54:10.573 回答