Trying to post avi file and wont play.

I am wanting to add an avi file to my families web page and every time that i upload it, it tells me that an additional plugin is needed to play the file. Then it tells me that there are no plugins available. How can I remedy this problem?

Can you post the code that you use to play that AVI file on that website?
<pre><nowiki><object data="file.avi" type="application/x-mplayer2" height="xxx" width="xxx">
<param name="filename" value="file.avi">
</object></nowiki></pre>

Similar Messages

  • "Lost" files and wont play music

    First, iTunes stopped playing music. I double clicked a song, it would show up in the bar at the top, and then start scanning through all 14k songs in my library maybe playing every other song's first second or two. Then it started telling me that song files couldn't be found. Now it's doing both. I just upgraded to the new iTunes and it's still not working.

    Further, I can't get the grey box to go away asking me if I want to search for the next song that's suddenly missing.

  • I have PX90 and trying to play it on my Mac but it's a .avi file and I cant figure this out, help

    Trying to play .avi file and I cant figure it out. I am pretty Mac ignorant(hey at least I own one)
    I've uploaded a couple files but they stay as .dmg files and I cant get them to work and quicktime
    isnt working.  I dont think I should have to purchase another so called $29.00 file to make .avi
    work on my Mac.  Does anybody know what I am doing wrong?
    Thanks

    AVI is a legacy file container originated by Microsoft back in 1992 and which has not been officially supported for more than a decade. Like the container, many of the codecs commonly used to create AVI content are also "legacy" compression formats most often supported on PC/Windows platforms. In fact, some codecs have never been transcoded for Mac use. Of those that have, many never made the transition to Mac OS X or the transition to Intel-based platforms. Those codecs that are still supported on the Mac can normally be found in the free Perian codec component package available as an online download. While some common AVI compression formats may be supported by the QT X Player app, QT 7 currently provides a more compatible AVI playback environment for most "legacy" compression formats. If the codec(s) used in your AVI files are not supported by the Perian package for QT use, you can try the VLC media player which may still support more esoteric compression formats. If  VLC does not support the files, the normal approach is to discover which specific audio and/or video codecs were used to create the file and perform an Internet search to see if a compatible Mac component is available for download.

  • Hi, I have downloaded some avi files and mov files. i am not getting audio while playing the movie. i tried to play with iTunes, QT, DivX player. but I am getting audio in mp4 files. can u help me to fix this

    Hi, I have downloaded some avi files and mov files. i am not getting audio while playing the movie. i tried to play with iTunes, QT, DivX player. but I am getting audio in mp4 files. can u help me to fix this

    First, back up all data and then uninstall "DivX" according to the developer's instructions.
    Then try this:
    VideoLAN - Download official VLC media player for Mac OS X

  • I was almost finished editing my video and suddenly my video files just show a black screen and wont play.

    I was almost finished editing my video and suddenly my video files just show a black screen and wont play.

    MacBook Pro  / Mozilla Firefox / Netflix / Silverlight Update solved - DON'T DWNLOAD FROM NETFLIX
    I solved this problem tonight. I have a MacBook Pro with 10.5.8. I know, it's old. But I love my Netflix and I recently noticed that Firefox plays Netflix much better.  Then I suddenly got this message that I needed to download the latest Silverlight - it only takes 30 seconds! - WRONG.   However, after much searching, I finally did the steps in order and it worked.  
    This was after repeatedly downloading Silverlight from the Netflix site without success.  So here's what I did:
    1. Went to http://www.microsoft.com/getsilverlight/Get-Started/Install/Default.aspx
    2. Followed the directions. I felt like such an idiot for not doing it right before.
    3. Go to your hard drive and search for "Silverlight" to locate ANY existing Silverlight files: .dmg, etc.
        [also check your Libary/ Internet Plug-ins, but the above search is faster]
    4. Drag it all to the trash and empty it.
    5. Go back to the Get  Silverlight page and click on the Install on that page, not the Netflix site.
    6. Note the steps for Safari or Mozilla Firefox - I wanted Firefox, so I follwed those instructions.
    7. Once it's installed, close all the browsers and Restart that bad boy. Right away.
    8. Open a browser, go to Netflix and proceed to joyfully rot your brain with Netflix content. Yay!

  • I tried to sync music to my phone and some of the songs and greyed out and wont play.. i cant delete them off the phone, nor can i sync any more music. can anyone help me?

    the songs i tried to sync to my phone and  greyed out and wont play, i cant delete them off the phone or sync any new music.. can anyone help me?

    Same problem here - iPhone 6, iOS 8.1.2 and itunes 12.0.1.26

  • My QuickTime player us not playing .avi files and says I need a codec I can't play no .avi files on QuickTime. How could I fix this because I want to play these files with QuickTime.

    My QuickTime player us not playing .avi files and says I need a codec I can't play no .avi files on QuickTime. How could I fix this because I want to play these files with QuickTime.

    Hmm . . . comes with a Utility MPEG2 Component ML app with no explanation of what it's for?
    The utility app is an "assistant PKG installer." It allows Lion and Mountain Lion users to install the older QT MPEG-2 Playback Component installer PKG file which is not allowed to run on its own under Lion or Mountain Lion since these operating systems already have a QT X only MPEG-2 component embedded in the QT embedded structure. Without this utility you would have to either copy the component from an older system to your Lion or Mountain Lion system, use Pacifist for installation, or manually open the PKG contents and transfer the component to the appropriate component folder.
    As to your "discussion" regarding the playback of AVI file types, there are really only two strategies here:
    1) You can add component support so that QT can play the files natively or
    2) You can convert the file contents to compression formats that are natively compatible with the unmodified QT component configuration.
    Each user should decide for his or her own self which approach best suits their needs for a particular source file. In most cases, conforming the system's codec component configuration to play the source file directly results in higher video quality since no transcoding takes place but this strategy will not work if a codec which is required is not available for the user's operating system. On the other hand, converter utilities tend to support more built-in codecs and are easier to use since the user does not have to concern him or herself with the nature of the particular source compression formats but at the risk of some potential loss in visual quality. As to what converter to use, once again this is a matter of personal choice. In the case of commercial converters like iSkysoft, the codecs are built in while MPEG Streamclip accesses the host operating system's QT codec component configuration. I personally prefer the free HandBrake app for AVI, MKV, TS, MTS, and M2TS conversions since it has an exceptionally full-featured X.264 GUI with some user options that 97% of users are likely to never use.

  • I'm trying to import avi files to FQP - why does it not work? I've tried DVX-converter and Perian without any luck.

    I'm trying to import avi-files to FQP without any success. I'vw tried to convert it with quick-time and insalled Perian, with no luck. I'm new to FQP...

    FQP??
    Never mind. Open one of your .avi files in QuickTime Player.
    Press command and i keys to get the Inspector window.
    Tell us what it says next to Format.
    avi is just a container, we need to know the codec that was used to make them.

  • I have itunes on my windows desktop song that i have pourchasred on line i am trying to move to me andorid phone thay all come over but some of them are protected and wont play why is that

    I have itunes on my windows desktop song that i have pourchasred songs online i am trying to move the songs  to me andorid phone thay all come over but some of them are protected and wont play why is that

    They will not play because they are protected.
    You likely bought them before itunes + (drm free music).

  • Why does my quicktime player verson 10.2 somtimes read avi files and other times it wont recognize them?

      Why does my quicktime player version 10.2 sometimes read AVI video and other times it will not recognize that same file. I have a video card that sometimes it will read then the next time it recognizes the card but will not open the video. Message says "quicktime does not recognize this file.
    Whats up with that ??? Any help will be most appreciated!

    AVI is a container just like MKV, WMV, MOV, and MPEG. It is possible to use many different compression formats aka. codecs in an AVI container.
    Think of the container - AVI as being an envelope, and the compressed video in it as a letter. The letter may be in a language you cannot read even though you know how to open the envelope.
    Historically QuickTime did have some built-in ability to use AVI files and some formats in those files, this used to be further improved by installing the free Perian (for Mac only). However with Mavericks Apple have removed the ability for QuickTime X aka. QuickTime Player 10 to use AVI files, it now really only accepts MPEG4 or H.264.
    It is still possible to install QuickTime 7.6.6 in Mavericks and if you use it and Perian rather than QuickTime X you can still use various AVI files.
    Note: Mavericks also now no longer shows previews or thumbnails for AVI files for the same reason.

  • .avi files and subtitle drag&drop

    Is there any video player that can play .avi files and also support drag&drop subtitles? I tried Perian with Quick time and now it plays .avi files perfectly. However still can't drag the subtitles to Quicktime screen. Also I tried Miro and VLC Player. They both lack of 'drag&drop subtitle' function.
    I'm new to mac, only 3 days. Maybe there is a trick to do that drag&drop thing. Any help?

    use Mplayer from appstore and its free..:)

  • Trying to Import AVI file to iMovie - Error -8969

    Like some others before me, I too am having trouble importing .avi files to my iMovie version 4. Acccording to Command i, they are Motion JPEG OpenDML (they are .avi files from a Canon digital camera). They are viewable in QT. Several posts suggest they should import easily into iMovie. However, when I try to import, I get an error message (failed -8969). I tried converting the .avi file, with QT Pro, to both .mov and DV stream. It will convert to .mov, but when I try to import to iMovie, I get the same error message. I don't even get that far with DV: when I try to convert to DV stream, I get the same error message immediately. Any suggestions? Are there any plug-ins that would fix the problem?

    "codecBadDataErr = -8969"
    "Codec : acronym for "compression/deccompression" , is an algorithm, or specialized computer program, that reduces the number of bytes consumed by large files and programs."
    Used for video files, AVI, QuickTime and otherwise.
    Conclusion: You got a bad file.
    Come to think of it. I seem to remember a driver (or codec) that can be downloaded from Canon. Don't know any details, though.
    PS. Please don't post your question twice.

  • When I try to play a song on Itunes, it has an explanation point next to every song and wont play.

    When I try to play a song on Itunes, it has an explanation point next to every song and wont play.

    The usual reason for missing files is that you or some third party tool has moved, renamed or deleted the file, or that the drive it lives on has had a change of drive letter. It is also possible that iTunes has changed from expecting the files to be in the pre-iTunes 9 layout to post-iTunes 9 layout,or vice-versa, and so is looking in slightly the wrong place.
    Select a track with an exclamation mark, use Ctrl-I to get info, then cancel when asked to try to locate the track. Look on the summary tab for the location that iTunes thinks the file should be. Now take a look around your hard drive(s). Hopefully you can locate the track in question. If a section of your library has simply been moved, or a drive letter has changed, it should be possible to reverse the actions.
    Alternatively, as long as you can find a location holding the missing files, then you should be able to use my FindTracks script to reconnect them to iTunes.
    When you get things fixed make a backup.
    tt2

  • Okay, so my friends music downloaded to my iPhone when i put it on his computer to charge and i re-synced it to mine and all his music is still there but blank and wont play how can i get it off of my phone, its so annoying!!

    Okay, so my friends music downloaded to my iPhone when i put it on his computer to charge and i re-synced it to mine and all his music is still there but blank and wont play how can i get it off of my phone, its so annoying!! My itunes only has like 4 songs because my computer crashed and lost all my songs, and I'm not trying to steal his music. But like I said its still in the music app on the phone but its all blank and wont play. I just want it off.

    When he plugs it into his Mac again, he should be asked if he wishes to sync with that Mac.

  • Made an avi, but it wont play :(

    Hi!
    I have modified jpegstomovie to create a .mov file OR an .avi file. While I have seemingly gotten through all of the compile errors, and runtime errors, my outputted avi file does not play.
    instead, it opens up in windows media player, and windows media player does not throw an error. It does seem to want to play the file. However while it has the 2 seconds of video listed properly, and the play button seems depressed, I cannot see the video, and the timeline of the video does not proceed forward.
    I found the bug fixes for the avi time frame thing, but I do not believe that it has fixed my problem. Below I decided to copy and past the code in hopes of desperation that someone will have the answer for me...
    i still send a vector of jpeg images...
    thanks for the help
    import java.io.*;
    import java.util.*;
    import java.awt.Dimension;
    import javax.media.*;
    import javax.media.control.*;
    import javax.media.protocol.*;
    import javax.media.datasink.*;
    import javax.media.format.VideoFormat;
    * @author AOrnstei
    * TODO To change the template for this generated type comment go to
    * Window - Preferences - Java - Code Style - Code Templates
          * This program takes a list of JPEG image files and convert them into
          * a QuickTime movie.
         public class JpegsToMovie implements ControllerListener, DataSinkListener {
             public boolean doIt(int width, int height, int frameRate, Vector inFiles, MediaLocator outML, String strSave) {
              ImageDataSource ids = new ImageDataSource(width, height, frameRate, inFiles, strSave);
              Processor p;
              try {
                  System.err.println("- create processor for the image datasource ...");
                  p = Manager.createProcessor(ids);
              } catch (Exception e) {
                  System.err.println("Cannot create a processor from the data source.");
                  return false;
              p.addControllerListener(this);
              // Put the Processor into configured state so we can set
              // some processing options on the processor.
              p.configure();
              if (!waitForState(p, p.Configured)) {
                  System.err.println("Failed to configure the processor.");
                  return false;
              if (strSave.endsWith(".mov")){
                   //Set the output content descriptor to QuickTime.
                   p.setContentDescriptor(new ContentDescriptor(FileTypeDescriptor.QUICKTIME));
              }else if (strSave.endsWith(".avi")){
                   p.setContentDescriptor(new ContentDescriptor(FileTypeDescriptor.MSVIDEO));
              // Query for the processor for supported formats.
              // Then set it on the processor.
              TrackControl tcs[] = p.getTrackControls();
              Format f[] = tcs[0].getSupportedFormats();
              if (f == null || f.length <= 0) {
                  System.err.println("The mux does not support the input format: " + tcs[0].getFormat());
                  return false;
              tcs[0].setFormat(f[0]);
              System.err.println("Setting the track format to: " + f[0]);
              // We are done with programming the processor.  Let's just
              // realize it.
              p.realize();
              if (!waitForState(p, p.Realized)) {
                  System.err.println("Failed to realize the processor.");
                  return false;
              // Now, we'll need to create a DataSink.
              DataSink dsink;
              if ((dsink = createDataSink(p, outML)) == null) {
                  System.err.println("Failed to create a DataSink for the given output MediaLocator: " + outML);
                  return false;
              dsink.addDataSinkListener(this);
              fileDone = false;
              System.err.println("start processing...");
              // OK, we can now start the actual transcoding.
              try {
                  p.start();
                  dsink.start();
              } catch (IOException e) {
                  System.err.println("IO error during processing");
                  return false;
              // Wait for EndOfStream event.
              waitForFileDone();
              // Cleanup.
              try {
                  dsink.close();
              } catch (Exception e) {}
              p.removeControllerListener(this);
              System.err.println("...done processing.");
              return true;
              * Create the DataSink.
             DataSink createDataSink(Processor p, MediaLocator outML) {
              DataSource ds;
              if ((ds = p.getDataOutput()) == null) {
                  System.err.println("Something is really wrong: the processor does not have an output DataSource");
                  return null;
              System.out.println("outML  -------- " + outML.toString());
              DataSink dsink;
              try {
                  System.err.println("- create DataSink for: " + outML);
                  dsink = Manager.createDataSink(ds, outML);
                  dsink.open();
              } catch (Exception e) {
                  System.err.println("Cannot create the DataSink: " + e);
                  return null;
              return dsink;
             Object waitSync = new Object();
             boolean stateTransitionOK = true;
              * Block until the processor has transitioned to the given state.
              * Return false if the transition failed.
             boolean waitForState(Processor p, int state) {
              synchronized (waitSync) {
                  try {
                   while (p.getState() < state && stateTransitionOK)
                       waitSync.wait();
                  } catch (Exception e) {}
              return stateTransitionOK;
              * Controller Listener.
             public void controllerUpdate(ControllerEvent evt) {
                   if (evt instanceof ConfigureCompleteEvent ||
                       evt instanceof RealizeCompleteEvent ||
                       evt instanceof PrefetchCompleteEvent) {
                       synchronized (waitSync) {
                        stateTransitionOK = true;
                        waitSync.notifyAll();
                   } else if (evt instanceof ResourceUnavailableEvent) {
                       synchronized (waitSync) {
                        stateTransitionOK = false;
                        waitSync.notifyAll();
                   } else if (evt instanceof EndOfMediaEvent) {
                       evt.getSourceController().stop();
                       evt.getSourceController().close();
             Object waitFileSync = new Object();
             boolean fileDone = false;
             boolean fileSuccess = true;
              * Block until file writing is done.
             boolean waitForFileDone() {
              synchronized (waitFileSync) {
                  try {
                   while (!fileDone)
                       waitFileSync.wait();
                  } catch (Exception e) {}
              return fileSuccess;
              * Event handler for the file writer.
             public void dataSinkUpdate(DataSinkEvent evt) {
              if (evt instanceof EndOfStreamEvent) {
                  synchronized (waitFileSync) {
                   fileDone = true;
                   waitFileSync.notifyAll();
              } else if (evt instanceof DataSinkErrorEvent) {
                  synchronized (waitFileSync) {
                   fileDone = true;
                   fileSuccess = false;
                   waitFileSync.notifyAll();
    //java JpegImagesToMovie -w <width> -h <height> -f <frame rate> -o <output URL> <input JPEG file 1> <input JPEG file 2> ...
             //adam - make movie from vector of jpeg files
    public static MediaLocator ProduceMovie(int width, int height, int frameRate, Vector inputFiles, String strSave){//String outputURL) {
              /*     // Check for output file extension.
              if (!filSave.toString().endsWith(".mov") && !filSave.toString().endsWith(".MOV")) {
              // Check the frame rate.
              if (frameRate < 1)
                  frameRate = 1;
              // Generate the output media locators.
              MediaLocator oml = createMediaLocator(strSave);
              System.out.println(strSave);
              if (oml == null) {
                  System.err.println("Cannot build media locator from: " + strSave);
                  System.exit(0);
              JpegsToMovie imageToMovie = new JpegsToMovie();
              imageToMovie.doIt(width, height, frameRate, inputFiles, oml, strSave);
              return oml;
              //System.exit(0);
    /*         static void prUsage() {
              //System.err.println("Usage: java JpegsToMovie -w <width> -h <height> -f <frame rate> -o <output URL> <input JPEG file 1> <input JPEG file 2> ...");
              System.exit(-1);
              * Create a media locator from the given string.
             static MediaLocator createMediaLocator(String url) {
              MediaLocator ml;
              if (url.indexOf(":") > 0 && (ml = new MediaLocator(url)) != null)
                  return ml;
              if (url.startsWith(File.separator)) {
                  if ((ml = new MediaLocator("file:" + url)) != null)
                   return ml;
              } else {
                  String file = "file:" + System.getProperty("user.dir") + File.separator + url;
                  if ((ml = new MediaLocator(file)) != null)
                   return ml;
              return null;
             // Inner classes.
              * A DataSource to read from a list of JPEG image files and
              * turn that into a stream of JMF buffers.
              * The DataSource is not seekable or positionable.
             class ImageDataSource extends PullBufferDataSource {
              ImageSourceStream streams[];
              ImageDataSource(int width, int height, int frameRate, Vector images, String strSave) {
                  streams = new ImageSourceStream[1];
                  streams[0] = new ImageSourceStream(width, height, frameRate, images, strSave);
              public void setLocator(MediaLocator source) {
              public MediaLocator getLocator() {
                  return null;
               * Content type is of RAW since we are sending buffers of video
               * frames without a container format.
              public String getContentType() {
                  return ContentDescriptor.RAW;
              public void connect() {
              public void disconnect() {
              public void start() {
              public void stop() {
               * Return the ImageSourceStreams.
              public PullBufferStream[] getStreams() {
                  return streams;
               * We could have derived the duration from the number of
               * frames and frame rate.  But for the purpose of this program,
               * it's not necessary.
              public Time getDuration() {
                  return DURATION_UNKNOWN;
              public Object[] getControls() {
                  return new Object[0];
              public Object getControl(String type) {
                  return null;
              * The source stream to go along with ImageDataSource.
             class ImageSourceStream implements PullBufferStream {
                  float frameRate;
                   long seqNo = 0;
              Vector images;
              int width, height;
              VideoFormat format;
              int nextImage = 0;     // index of the next image to be read.
              boolean ended = false;
              public ImageSourceStream(int width, int height, int frameRate, Vector images, String strSave) {
                  this.width = width;
                  this.height = height;
                  this.images = images;
                  this.frameRate = (float) frameRate;
                  if (strSave.endsWith(".mov")){
                       format = new VideoFormat(VideoFormat.JPEG,
                                  new Dimension(width, height),
                                  Format.NOT_SPECIFIED,
                                  Format.byteArray,
                                  (float)frameRate);
                   }else if (strSave.endsWith(".avi")){
                        format = new VideoFormat(VideoFormat.CINEPAK,
                                  new Dimension(width, height),
                                  Format.NOT_SPECIFIED,
                                  Format.byteArray,
                                  (float)frameRate);
                  format = new VideoFormat(VideoFormat.JPEG,
                             new Dimension(width, height),
                             Format.NOT_SPECIFIED,
                             Format.byteArray,
                             (float)frameRate);*/
               * We should never need to block assuming data are read from files.
              public boolean willReadBlock() {
                  return false;
               * This is called from the Processor to read a frame worth
               * of video data.
               public void read(Buffer buf) throws IOException {
                    // Check if we've finished all the frames.
                  if (nextImage >= images.size()) {
                       long time = (long)seqNo * (1000 / (long)frameRate) * 1000000;
                        buf.setTimeStamp(time);
                        buf.setSequenceNumber(seqNo++);
                        // We are done.  Set EndOfMedia.
                        //System.err.println("Done reading all images.");
                        buf.setEOM(true);
                        buf.setOffset(0);
                        buf.setLength(0);
                        ended = true;
                        return;
                  String imageFile = (String)images.elementAt(nextImage);
                  nextImage++;
                  //System.err.println("  - reading image file: " + imageFile);
                  // Open a random access file for the next image.
                  RandomAccessFile raFile;
                  raFile = new RandomAccessFile(imageFile, "r");
                  byte data[] = null;
                  // Check the input buffer type & size.
                  if (buf.getData() instanceof byte[])
                   data = (byte[])buf.getData();
                  // Check to see the given buffer is big enough for the frame.
                  if (data == null || data.length < raFile.length()) {
                   data = new byte[(int)raFile.length()];
                   buf.setData(data);
                  long time = (long) (seqNo * (1000 / frameRate) * 1000000);
                buf.setTimeStamp(time);
                buf.setSequenceNumber(seqNo++);
                  // Read the entire JPEG image from the file.
                  raFile.readFully(data, 0, (int)raFile.length());
                  //System.err.println("    read " + raFile.length() + " bytes.");
                  buf.setOffset(0);
                  buf.setLength((int)raFile.length());
                  buf.setFormat(format);
                  buf.setFlags(buf.getFlags() | buf.FLAG_KEY_FRAME);
                  // Close the random access file.
                  raFile.close();
               * Return the format of each video frame.  That will be JPEG.
              public Format getFormat() {
                  return format;
              public ContentDescriptor getContentDescriptor() {
                  return new ContentDescriptor(ContentDescriptor.RAW);
              public long getContentLength() {
                  return 0;
              public boolean endOfStream() {
                  return ended;
              public Object[] getControls() {
                  return new Object[0];
              public Object getControl(String type) {
                  return null;
         }

    Try deleting the problematic tune (electing to remove original file if/when prompted) and then re-downloading the file from the iTunes store.
    You can re-download content purchased from the iTunes store (availability varies depending on location) using the purchased option from the Quick Links section in the top right corner of the iTunes homepage in your iTunes application on your computer.
    You can re-download content purchased from the iTunes store (availability varies depending on location) using the purchased option at the bottom of the screen of the iTunes app on your iOS device.
    If the problem re-occurs, select the content which is causing a problem and use the 'Report a problem' button in Your Purchase History using your computer.

Maybe you are looking for

  • Windows Xp : Itunes will no longer sync my voice memos from iphone.

    Hello The first time I synced my iphone with this new itunes 10, it synced all music and voice memos str8 from my iphone to the itunes LIBRARY (specifically). Now for some odd reason, it wont send ANYTHING, from my iphone to the ITUNES LIBRARY.It wil

  • 65W 20V AC Adapter gets super hot (including new adapter replaced on warranty)

    I bought a e420 in March and the 65W 20V AC adapter it came with has always ran really hot. Hot enough you can't really hold it while using the laptop while it's plugged in. When the laptop is off and charging, it's very cool. Now I just recieved a n

  • Host command in report

    i want to use host command in report but error happened any thing instead of host

  • Load different content by date

    I need to show "Animation 1" once a day, then show "Animation 2". This is what I have so far, but it doesn't seem to work. Any ideas?

  • Converting picture books

    Would I be able to easily convert existing self published picture books using iBooks to make app versions? I have a client that I illustrate and design for and have been trying to find a way to convert her books into apps to offer them electronically