我知道一首歌的艺术家和曲目名称,但我不确定哪种服务或如何为该曲目下载专辑封面.
我相信iTunes和亚马逊都提供服务,但我不确定如何整合这些服务,任何链接或建议都表示赞赏.
我想在listview中显示带有专辑名称的专辑封面.但我没有得到显示专辑封面的方式.我试过从android上的封面艺术.
这是我的代码:
Cursor cursor = managedQuery(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, null, null, null, null);
if (cursor == null)
{
//Query Failed , Handle error.
}
else if (!cursor.moveToFirst())
{
//No media on the device.
}
else
{
int titleColumn = cursor.getColumnIndex(android.provider.MediaStore.Audio.Albums.ALBUM_ART);
int id = cursor.getColumnIndex(android.provider.MediaStore.Audio.Albums.ALBUM_ID); //here value i m getting -1 .
for(int i=0;i<cursor.getCount();i++)
{
if(id<0)
{
Long album =Long.parseLong(cursor.getString(id));
String coverPath = cursor.getString(titleColumn);
Context context = null;
ContentResolver res = context.getContentResolver();
Uri uri = ContentUris.withAppendedId(sArtworkUri, album);
if (uri != null)
{ …
Run Code Online (Sandbox Code Playgroud) android albumart mediastore android-contentresolver android-mediaplayer
我正在尝试使用Amazon Web Services查询艺术家和标题信息并接收专辑封面.使用C#我找不到任何接近这个的例子.在线的所有示例都已过时,不适用于AWS的新版本.
我正试图获得MP3文件的专辑封面.我认为最好和最干净的方法是使用MediaMetadataRetriever类.但由于某些原因调用getEmbeddedPicture方法不起作用.图像未显示,LogCat显示错误:
04-29 18:36:19.520: E/MediaMetadataRetrieverJNI(25661): getEmbeddedPicture: Call to getEmbeddedPicture failed.
Run Code Online (Sandbox Code Playgroud)
这是似乎不起作用的代码:
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
MediaMetadataRetriever mmdr = new MediaMetadataRetriever();
mmdr.setDataSource(path); //path of the MP3 file on SD Card
bites = mmdr.getEmbeddedPicture();
if(bites != null)
artBM = BitmapFactory.decodeByteArray(bites, 0, bites.length);
return null;
}
Run Code Online (Sandbox Code Playgroud)
我在Android 4.2的设备上运行它,因此MediaMetadataRetriever应该没有任何问题(需要api lvl 10).我测试的文件在Windows资源管理器中显示了一个图像,所以似乎嵌入了艺术.有没有人对此有任何想法?
我正在使用滑翔来显示专辑封面,但不知何故我无法显示它。我想添加侦听器以滑动以定位错误,但它不起作用。它显示错误说:
listener(com.bumptech.glide.request.RequestListener)
incom.bumptech.glide.DrawableRequestBuilder
不能应用于(anonymous com.bumptech.glide.request.RequestListener)
播放列表活动.java :
package com.example.dell_1.myapp3;
import android.app.Activity;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.design.widget.Snackbar;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
public class PlayListActivity extends Activity {
private String[] mAudioPath;
private MediaPlayer mMediaPlayer;
private String[] mMusicList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_list);
mMediaPlayer = new MediaPlayer(); …
Run Code Online (Sandbox Code Playgroud) 请注意,我已经在这里和其他网站上遇到了类似的问题和答案.我也有一个适用于某些设备的解决方案(我的G2X运行CyanogenMod 7.1,我妻子的HD2运行自定义ROM,运行Android 2.1的模拟器).然而,它并没有在我的Nook上运行CyanogenMod.
我的问题是:在所有Android设备上获取专辑封面的最强大和最通用的方法是什么?对于特定设备,版本或音乐应用程序有什么问题(我不是指第三方播放器,我的意思是Google音乐与旧音乐客户端)?我目前的代码是:
// Is this what's making my code fail on other devices?
public final Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
// This works, and well on all devices
private int[] getAlbumIds(ContentResolver contentResolver)
{
List<Integer> result = new ArrayList<Integer>();
Cursor cursor = contentResolver.query(MediaStore.Audio.Media.getContentUri("external"), new String[]{MediaStore.Audio.Media.ALBUM_ID}, null, null, null);
if (cursor.moveToFirst())
{
do{
int albumId = cursor.getInt(0);
if (!result.contains(albumId))
result.add(albumId);
} while (cursor.moveToNext());
}
int[] resultArray = new int[result.size()];
for (int i = 0; i < result.size(); i++)
resultArray[i] = result.get(i); …
Run Code Online (Sandbox Code Playgroud) 我希望能够使用mutagen将专辑封面添加到文件中,但是当我将其添加为文件时,它返回:
Run Code Online (Sandbox Code Playgroud)File "D:\Download\pandora\renamingMETAEFF.pyw", line 71, in <module> meta['covr'] = image File "C:\Users\AMD\AppData\Local\Programs\Python\Python35\lib\site-packages\mutagen\_file.py", line 67, in __setitem__ self.tags[key] = value File "C:\Users\AMD\AppData\Local\Programs\Python\Python35\lib\site-packages\mutagen\mp4\__init__.py", line 357, in __setitem__ self._render(key, value) File "C:\Users\AMD\AppData\Local\Programs\Python\Python35\lib\site-packages\mutagen\mp4\__init__.py", line 371, in _render return render_func(self, key, value) File "C:\Users\AMD\AppData\Local\Programs\Python\Python35\lib\site-packages\mutagen\mp4\__init__.py", line 732, in __render_cover b"data", struct.pack(">2I", imageformat, 0) + cover)) TypeError: can't concat bytes to str
相关的代码是这样的:
from mutagen.mp4 import MP4
image = jpgname + '.jpg'
meta['\xa9nam'] = song
meta['\xa9ART'] = artist
meta['\xa9alb'] = album
meta = MP4(songPath)
meta['covr'] = image …
Run Code Online (Sandbox Code Playgroud) 我不知道我是否可以在这里提出这样的问题.我的问题如下.
我自己制作音乐播放器,我想下载那些没有专辑图片的歌曲的专辑图片.就像N7Music Player正在做的那样.我自己做了一些搜索,我发现使用MusicBrainz我们可以下载图像.
我寻找它的API,但我没有清楚地了解它.我有疑虑.
我在等你的宝贵回应.
提前感谢你.
我对android编程很新.我想知道代码(Function)在音乐播放器中返回albumart的图像plz解释我应该传递什么参数,我可以将文件路径传递给函数plz帮助!我在这里发布我的代码下面的plz帮助!
imported required libraries
public class SongsManager {
// SDCard Path
final String MEDIA_PATH = new String("/sdcard/");
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
// Constructor
public SongsManager(){
}
public ArrayList<HashMap<String, String>> getPlayList(){
File home = new File(MEDIA_PATH);
if (home.listFiles(new FileExtensionFilter()).length > 0) {
for (File file : home.listFiles(new FileExtensionFilter())) {
HashMap<String, String> song = new HashMap<String, String>();
song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
song.put("songPath", file.getPath());
// Adding each song to SongList
songsList.add(song);
}
}
// return songs list array …
Run Code Online (Sandbox Code Playgroud) 我有以下问题要问:
如何使用iOS应用程序编译taglib?
我有点困惑,因为我将文件夹添加到我的项目中,尝试编译它,但它失败了1640错误.
如何使其成功编译 - 我问的原因是taglib允许从标签中提取专辑图片.
如果有人知道基于Objective-C的专辑图片提取类它会有所帮助 - 我不知道Apple为什么不在Core Foundation中添加这样做的方法 - 因为有一些方法可以从ID3标签中提取一些数据.
我不明白为什么没有一些 Objective-C的方法.
任何帮助赞赏.
编辑:
经过几个小时的尝试,我发现这里的Java函数似乎可以正常工作,但我还没有得到如何将其转换为Objective-C 的线索(或者更不用说C++)但是,它的类型似乎与Objective-C/C++中的类型完全不同.
如果有人知道转换它的方法它会真的有帮助,因为这似乎是我最后的选择,因为我已经尝试了很多其他的.
我在LoaderManager中使用CursorLoader和Custom CursorAdapter.我已经实现了显示专辑和相关的艺术家,现在我想显示封面.
这是我的Custom CursorAdapter:
public class AlbumsAdapter extends CursorAdapter {
private final LayoutInflater mInflater;
public AlbumsAdapter(Context context, Cursor c) {
super(context, c);
mInflater=LayoutInflater.from(context);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView albumTitle =(TextView)view.findViewById(R.id.albumTextView);
albumTitle.setText(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Albums.ALBUM)));
TextView artistName=(TextView)view.findViewById(R.id.artistTextView);
artistName.setText(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Albums.ARTIST)));
ImageView albumCover=(ImageView)view.findViewById(R.id.artistTextView);
// Here what should I do ?
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final View view=mInflater.inflate(R.layout.albums_row,parent,false);
return view;
}
}
Run Code Online (Sandbox Code Playgroud)
我试过以下但没有成功:
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ART));
File imgFile = new File(path);
if(imgFile.exists()){
Bitmap …
Run Code Online (Sandbox Code Playgroud) android albumart android-imageview android-mediaplayer android-cursorloader
这是我用来将 1 个音频和 1 个图像合并为 1 个视频的代码/参数。出于某种原因,无论来源如何,它都会在输出视频的末尾增加 30 秒的静音。
我在 Win10 x64 上运行它,并安装了最新的 ffmpeg。我已经检查了代码,但无法确定它使静音的位置。
ffmpeg -y -loop 1 -framerate 2 -i "some.png" -i "with.mp3"
-c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest "result.mkv"
Run Code Online (Sandbox Code Playgroud)
输出不应包含额外的 30 秒静音。它应该在音频用完时结束。
我应该补充一点,我从某个网站复制了大部分参数,而且 OP 似乎很好地使用了它,所以我不确定这是否只是我的问题。
我正在为Android制作音乐播放器,我想为用户提供功能,以便从last.fm获取一首歌的专辑封面.
我也有我的API密钥.只需要帮助从Last.fm检索图像.
获得图片网址的任何帮助也将不胜感激.
提前致谢.
PS:有关我的音乐播放器的更多信息,请查看以下链接 https://plus.google.com/u/0/communities/115046175816530349000