2016-08-27 26 views
0

ファイアベースストレージをバックエンドとして使用しているボイスメッセージングアンドロイドアプリケーションを作成しようとしていますが、アップロード中にmp3ファイルをダウンロードしているときに問題が発生しています。Firebase storageからオーディオをダウンロード

誰かがストレージからオーディオファイルをダウンロードするだけの簡単なコードを入力してください。 私は、Androidの開発で私はTISを私のアップロードコード

private void uploadAudio() { 
    pd=new ProgressDialog(this); 
    pd.setMessage("Uploading"); 
    pd.show(); 
    StorageReference filepath = mstorage.child("Audio").child("New_Audio"); 
    Uri uri = Uri.fromFile(new File(mFileName)); 
    filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
     @Override 
     public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
      pd.dismiss(); 


     } 
    }); 
} 

で怒鳴る

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

ように私のマニフェストファイルにすべての権限を追加しましたnoobの

あるためにとても残念新たなんですそしてダウンロードのために

private void startdownload() { 

    down = mstorage.child("Audio/"); 

    File localFile = null; 
    try { 
     localFile = File.createTempFile("Audio", "mp3"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    down.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() { 
     @Override 
     public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { 
      Toast.makeText(getApplicationContext(),"Downloded",Toast.LENGTH_SHORT).show(); 
     } 
    }).addOnFailureListener(new OnFailureListener() { 
     @Override 
     public void onFailure(@NonNull Exception exception) { 

     } 
    }); 
} 
+0

問題/エラーは何ですか? 'down = mstorage.child(" Audio/");'ファイルを指していない、 'Audio/theaudiofile.mp3'のようなものでなければなりません – Wilik

+0

" StorageException has occurred.Objectのようなstorgeエラーが出ますlocation.Code時:-13010 HttpResult:404" 、はいあなたは、私はオーディオ/ New_Audio.mp3のようなファイルへの適切なパスを提供してきましたが、それはまだ格納例外を与える –

+0

ファイルはFirebaseストレージに存在することを確認してくださいコンソールから確認できます。 – Wilik

答えて

0

あなたのStorageReference for uploa dとダウンロード方法は同じです。ファイルのダウンロードが完了したら

down = mstorage.child("Audio").child("New_Audio.mp3"); 

try { 
    File localFile = new File(Environment.getExternalStoragePublicDirectory(
      Environment.DIRECTORY_DOWNLOADS), "New_Audio.mp3"); 
    localFile .createNewFile(); 
    down.getFile(localFile); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
0

ダウンロード利用の場合:

//upload 
StorageReference filepath = mstorage.child("Audio").child("New_Audio.mp3"); 
//download 
down = mstorage.child("Audio").child("New_Audio.mp3"); 

は、あなたが this Android Developers guide

例に従うことができ、外部ストレージにファイルを保存するにはファイルパスを確認するには

localFile.getAbsolutePath(); 

このように、それのトーストを作る:

Toast.makeText(getApplicationContext(), localFile.getAbsolutePath(),Toast.LENGTH_SHORT).show(); 

私はあなたが私のポイントを得た願っています:)

関連する問題