2016-11-24 4 views
-1

Я разработал «приложение», которое является довольно популярным человеком из деки моей страны. Это очень просто, у него есть 6 основных кнопок, которые воспроизводят другой звук, а затем для каждого звука есть другие 2 кнопки, один для совместного использования звука через социальные сети, а другой для настройки звука в качестве мелодии звонка, сигнала тревоги или уведомления. Сначала все работало нормально, но однажды, внезапно, он прекратил работать функцией обмена (остальные функции все еще работают).Как поделиться аудио в социальных сетях (Whatsapp, Facebook) в Android (2016)?

Появляется сообщение «Формат несовместим» для каждой социальной сети, которую я пытался разделить (или что-то в этом роде, это на испанском языке). Вы можете скачать приложение по этой ссылке: download the app here

последний код разблокировки для совместного использования заключается в следующем:

  private void shareItAYQueNoEntren() { 
        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
        sharingIntent.setType("audio/mpeg3"); 
        Uri path = Uri.parse("android.resource://fzmobile.elgordodecentral/raw/" + R.raw.yquenoentren); 
        sharingIntent.putExtra(Intent.EXTRA_STREAM, path); 
        startActivity(Intent.createChooser(sharingIntent, "Share by...")); 
       } 

И расширение звукового файла в необработанном папке .mp3.

Как я могу решить эту проблему?

+0

Если приложение не работает в android 6.0 и выше, проблема связана с разрешением i n проявить андроид 6 и выше, вы должны предоставить разрешение на выполнение для чтения SD-карты – SaravInfern

+0

@SaravInfern Можете ли вы сказать мне, какое разрешение, пожалуйста? –

+0

см. Здесь [https://developer.android.com/training/permissions/requesting.html) – SaravInfern

ответ

0

Попробуйте это:

String sharePath = Environment.getExternalStorageDirectory().getPath() 
     + "your audio file path here"; 
Uri uri = Uri.parse(sharePath); 
Intent share = new Intent(Intent.ACTION_SEND); 
share.setType("audio/*"); 
share.putExtra(Intent.EXTRA_STREAM, uri); 
startActivity(Intent.createChooser(share, "Share Sound File")); 

Также не забудьте добавить разрешение WRITE_EXTERNAL_STORAGE в противном случае вы получите сообщение об ошибке при запуске приложения.

+0

Я пробовал свой код с помощью этого: String sharePath = Environment.getExternalStorageDirectory(). GetPath() + "android .resource: //fzmobile.elgordodecentral/raw/ "+ R.raw.yquenoentren; Но это не сработало. В нем говорилось, что он не может подключить пустой файл ... –

+0

ваш путь неправильный "android.resource: //fzmobile.elgordodecentral/raw/": вы хотите загрузить файл из папки RAW – Varma460

+0

например: String sharePath = Environment.getExternalStorageDirectory(). GetPath() + "/Soundboard/Ringtones/custom_ringtone.mp3"; – Varma460

0

Скопируйте аудиофайл из ресурса на внешний накопитель, а затем поделиться им:

InputStream inputStream; 
FileOutputStream fileOutputStream; 
try { 
inputStream = getResources().openRawResource(R.raw.sound); 
fileOutputStream = new FileOutputStream(
     new File(Environment.getExternalStorageDirectory(), "sound.mp3")); 

byte[] buffer = new byte[1024]; 
int length; 
while ((length = inputStream.read(buffer)) > 0) { 
    fileOutputStream.write(buffer, 0, length); 
} 

inputStream.close(); 
fileOutputStream.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

затем

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.putExtra(Intent.EXTRA_STREAM, 
    Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/sound.mp3")); 
intent.setType("audio/*"); 
startActivity(Intent.createChooser(intent, "Share sound")); 

Добавить разрешение WRITE_EXTERNAL_STORAGE в AndroidManifest.xml файла:

+0

Это сработало! Большое спасибо!!! –

+0

Нет проблем, в любое время – Varma460

+0

, пожалуйста, ответьте на этот вопрос – Varma460

 Смежные вопросы

  • Нет связанных вопросов^_^