我有个问题。我需要创建一个服务,该服务发送一个mp3文件,该文件从一个活动发送的字符串中合成语音,或者一个mp4文件。我能够创建mp3文件和mp4文件。我还知道如何在“共享”菜单中设置其中一个。
我的问题是,我想看到每个应用程序,它可以处理mp3和mp4文件,然后将正确的文件发送到选择的应用程序。
这是我的密码:
public void setShareContent(MenuItem item, ShareActionProvider mShareActionProvider) {
this.setActionMenu(item,mShareActionProvider);
Intent mIntent = new Intent();
mIntent.setAction(Intent.ACTION_SEND);
Uri uri = Uri.parse("file:///"+Environment.getExternalStorageDirectory()+"/sounds/hello.mp3");
mIntent.putExtra(Intent.EXTRA_STREAM,uri);
mIntent.setType("audio/mp3");
mShareActionProvider.setShareIntent(mIntent);
}
private void setActionMenu(MenuItem item, ShareActionProvider mShareActionProvider) {
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
}我的听众来自我的活动:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
message = text.getText().toString();
myHashReader = new HashMap<String, String>();
myHashReader.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, message);
String exStroragePath = Environment.getExternalStorageDirectory().getAbsolutePath();
File tmpPath = new File(exStroragePath + "/sounds/");
tmpPath.mkdirs();
String tmpFileName = "hello.mp3";
tmpDestFile = tmpPath.getAbsolutePath() + "/" + tmpFileName;
new MySpeech(MyActivity.this, message, tmpDestFile);
myService.setShareContent(item, mShareActionProvider);
}
});我被封锁了几天..。
发布于 2014-10-10 08:12:35
创建一个这样的选择器:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("mp3/*");
Intent musicIntent = new Intent(android.provider....);
Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INTENT, musicIntent);
chooser.putExtra(Intent.EXTRA_TITLE, "Select from:");
Intent[] intentArray = { musicIntent };
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivityForResult(chooser, REQUEST_PIC);发布于 2014-10-10 09:21:28
终于起作用了!你的代码帮了我很大的忙,但我没有按你说的做,这是我的代码:
public void setShareContent(MenuItem item, ShareActionProvider mShareActionProvider) {
this.setActionMenu(item,mShareActionProvider);
Intent mIntent = new Intent();
Uri uri = Uri.parse("file:///"+Environment.getExternalStorageDirectory()+"/sounds/hello.mp3");
mIntent.putExtra(Intent.EXTRA_STREAM,uri);
mIntent.setType("audio/mp3");
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("mp3/*");
Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_TITLE, "Select from : ");
chooser.putExtra(Intent.EXTRA_INTENT, mIntent);
mShareActionProvider.setShareIntent(chooser);
}
private void setActionMenu(MenuItem item, ShareActionProvider mShareActionProvider) {
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
}https://stackoverflow.com/questions/26294610
复制相似问题