Загрузка изображений через SOAP Magento API

Скорее всего, вы предпочтете использовать класс SoundPool . Это уменьшает задержку, когда пора воспроизводить звук, и предлагает другие тонкости, такие как возможность расставить приоритеты звуков, когда слишком много для воспроизведения одновременно.

Из документов:

SoundPool - это набор семплов, которые можно загрузить в память из ресурса внутри APK или из файла в файловой системе. Библиотека SoundPool использует сервис MediaPlayer для декодирования звука в необработанный 16-битный монофонический или стереопоток PCM. Это позволяет приложениям отправлять сжатые потоки, не испытывая нагрузки на процессор и задержки декомпрессии во время воспроизведения.

Например:

/**
 * How many sounds can be played at once.
 */
private static final int MAX_SOUND_POOL_STREAMS = 4;

/**
 * Modify this as part of your own priority scheme. Higher numbers mean higher
 * priority. If you don't care, it's okay to use the same priority for every
 * sound.
 */
private static final int NORMAL_PRIORITY = 10;

private int mySoundId;

@Override
public void setupContent() {
    this.soundPool = new SoundPool(MAX_SOUND_POOL_STREAMS,
            AudioManager.STREAM_MUSIC, 100);
    this.mySoundId = this.soundPool.load(this.getApplicationContext(),
            R.raw.mySound, 1);
}

@Override
private void playMySound() {
    this.soundPool.play(this.mySoundId, 1, 1, NORMAL_PRIORITY, 0, 1);
}

7
задан Peter Mortensen 9 April 2011 в 10:36
поделиться

2 ответа

На это у меня ушло ДНЕЙ .... вот как это сделать

public void UploadProductImage(string SKU, string path)
        {
            var imageStream = new MemoryStream();

            using (var i = Image.FromFile(@"c:\ProductImages\" + path))   
            {
                       i.Save(imageStream, ImageFormat.Jpeg);
            }
                byte[] encbuff = imageStream.ToArray(); 

            string enc = Convert.ToBase64String(encbuff,0 , encbuff.Length);


            var imageEntity = new catalogProductImageFileEntity();
            imageEntity.content = enc;
            imageEntity.mime = "image/jpeg";
            imageStream.Close();


            var entityP = new catalogProductAttributeMediaCreateEntity();
            entityP.file = imageEntity;
            entityP.types = new[] {"image", "small_image", "thumbnail"};
            entityP.position = "0";
            entityP.exclude = "0";

            _m.catalogProductAttributeMediaCreate(MageSessionProvider.GetSession(), SKU, entityP, "default");
            Console.WriteLine("Image Uploaded");
        }
14
ответ дан 6 December 2019 в 12:53
поделиться

Кажется, мы с Дэном озадачились одним и тем же вопросом в одни и те же дни, и мы получаем то же решение!

Я использую XML-RPC и Magento API. Я написал этот код как часть более крупного класса, который считывает данные изображения из файла и делает его совместимым с Magento API.

  internal void readFromFile(string fullImpgPath)
    {
        m_file.content = System.Convert.ToBase64String(System.IO.File.ReadAllBytes(fullImpgPath));
        string ext = System.IO.Path.GetExtension(fullImpgPath).ToLower();
        switch (ext)
        {
            case ".gif":
                m_file.mime = "image/gif";
                break;

            case ".jpg":
            case ".jpeg":
                m_file.mime = "image/jpeg";
                break;

            case ".png":
                m_file.mime = "image/png";
                break;

            case ".bmp":
                m_file.mime = "image/bmp";
                break;

            case ".tif":
            case ".tiff":
                m_file.mime = "image/tiff";
                break;

            default:
                m_file.mime = "application/octet-stream";
                break;
        }
    }

Очень важно, чтобы «контент» имел строковый тип и должен быть получен из байтов [] через вызов системной функции Convert.ToBase64String (...) .

Что касается типа изображения MIME , только "gif" , поддерживаются "jpg" и "png" как я обнаружил, заглянув внутрь кода API Magento.

2
ответ дан 6 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: