我有问题。我需要创建一个服务,发送一个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);
}
});
我被封锁了......
答案 0 :(得分:1)
终于有效了!你的代码给了我很多帮助,但是我没有做你告诉我要做的事,这是我的代码:
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();
}
答案 1 :(得分:0)
创建一个像这样的选择:
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);