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://で始まる必要があります。

携帯電話からサウンドをロードしたい場合は、次のようになります。これが必要な1つの重要な行です。以下に完全なコードを投稿します。

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 に答える