Audio stops after one second

My code seem to work, but the 12 sec audio clip stops after just one second, while the object continues to move.

#pragma strict

// define the origin and destination point objects in the game. 
var originSpot : Transform;
var destinationSpot : Transform;
var isInTheZone : boolean; // this is set in triggerDoor.js
var speed : float;

// door audio position code
var lastPosition : Vector3;
var originPos : Vector3;
var destPos : Vector3;
var door_transform : Transform;
var isMoving : boolean;
var door_audio : AudioClip;
 
 
function Start()
{
	audio.clip = door_audio;
	door_transform = transform;
	originPos = originSpot.position;
	destPos = destinationSpot.position;
	isMoving = false;
}


function Update() 
{
	if(isInTheZone)
	{
		// first person controller is inside the collider. Slide out the door. 
		transform.position = Vector3.MoveTowards(transform.position, destinationSpot.position, speed * Time.deltaTime);
	}
	else
	{	
		// first person controller is outside the collider. Slide the door back to the original position. 
		transform.position = Vector3.MoveTowards(transform.position, originSpot.position, speed * Time.deltaTime);
	}

	// check if door is moving. If so, play audio clip.
	if ( door_transform.position != destPos || door_transform.position != originPos)
	{
		isMoving = true;
		audio.Play();	
	}
	else 
	{
		isMoving = false;
		audio.Pause();
	}
		
	lastPosition = door_transform.position;

}

in line 45 you set audio.Play();

but this line is a continuous condition so always is starting audio.Play();

you can do something like

var playSound : boolean;//set a new bool
	
	 if ( door_transform.position != destPos || door_transform.position != originPos)
    {
       isMoving = true;
		if(!playSound){
       		audio.Play(); 
			playSound=true;
		}
    }
    else 
    {
       isMoving = false;
       audio.Stop();
       playSound=false;
    }